Firebase orderByChild 带有 startAt() 的第二个参数,分页不排序

2024-04-05

我有一个 Firebase 调用,如下所示,

      ref.child(`floorPosts/${this.props.floorName}`)
        .orderByChild('numberOfLikes')
        .limitToLast(15)
        .once('value', (snapshot) => {
          var topPosts = [];
          snapshot.forEach((childSnapshot) => {
            var post = childSnapshot.val();
            post.key = childSnapshot.key();
            topPosts.unshift(post);
          });
          this.lastPostKeyTop = topPosts[topPosts.length - 1].key;
          this.setState({
            topPosts,
            isLoading: false
          });
      });

现在我想做的是,当用户滚动到页面底部时,我调用此函数。

ref.child(`floorPosts/${this.props.floorName}`)
    .orderByChild('numberOfLikes')
    .startAt(null, this.lastPostKeyTop)
    .limitToLast(15)
    .once('value', (snapshot) => {
      var topPosts = [];
      snapshot.forEach((childSnapshot) => {
        var post = childSnapshot.val();
        post.key = childSnapshot.key();
        topPosts.unshift(post);
      });
      this.setState({
        topPosts: this.state.topPosts.concat(topPosts),
        isLoading: false,
      });
  });

然而,它连接了与最初相同的前 15 个结果。.startAt接受第二个参数,(我相信)它是初始获取时从 firebase 获取的最后一个项目的键。但是,这似乎不适用于我的情况。我有预感这与snapshot.forEach code.


抱歉泰勒的答复太晚了

第二个参数startAt() is only用于消除与第一个参数匹配的项目之间的歧义。所以你必须传入两个值numberOfLikes开始于and第一页上最后一项的键(通常称为锚项)。

另请注意,这意味着下一组结果的第一项将与上一组结果中的最后一项相同。所以你需要取回一件额外的物品。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Firebase orderByChild 带有 startAt() 的第二个参数,分页不排序 的相关文章

  • 如何仅从 Firestore 获取最新更新的数据?

    在 Firestore 上发现任何更改时始终获取整个文档 如何只获取最近更新的数据 这是我的数据 我需要在第一次加载时在聊天中按对象顺序 例如 2018 09 17 30 40 msg和sendby 并且如果数据更新则仅获取新的msg和se
  • 如何使用 Cloud Functions for Firebase 更新 Firebase 实时数据库中的值

    我浏览了 firebase 文档 使用 Firebase 的 Cloud Functions 更新实时数据库中的值 但无法理解 我的数据库结构是 user KdD1f0ecmVXHZ3H3abZ email email protected
  • firestore安全规则中更新字段的数量

    我正在从客户端进行批量操作以仅更新一个字段 但在进行批量操作和安全规则测试时 观察到多个字段正在被更新 我用这个检查了request resource data size gt 1 and request resource data key
  • 如何限制firebase中的字符串长度

    我在 firebase 数据库中工作 我需要限制字符串字段的长度 我怎么做 到该字段的路径是 Col1 doc1 描述 也就是说 从集合 col1 开始 然后进入 doc1 然后对于 doc1 下的所有集合以及该集合下的所有文档 描述字段需
  • firebase中按范围查询

    我有一个食品价格范围滑块 根据滑块的最小值和最大值 我想显示此范围内的食品 滑块代码 multiSlider setOnThumbValueChangeListener new MultiSlider SimpleChangeListene
  • 检索子值 -firebase-

    System out println ref child email protected cdn cgi l email protection child email 我正在尝试获取 child 的值 但我始终获取该值的 URL 当我尝试使
  • 配置根项目“firebase_auth”时出现问题

    my error 我无法构建 apk 发布文件 我完成了应用程序一段时间 没有出现错误 几天后 我在构建应用程序时收到此错误 请告诉我如何摆脱它 我尝试了 4 个小时 什么也没得到 FAILURE Build failed with an
  • Package.json 表示 firebase-functions 的版本已过时

    我有云功能项目 并将该项目从旧笔记本电脑移至新笔记本电脑 我已经安装了所有必要的东西 我的问题是当我尝试时firebase deploy它给了我这个错误 函数 package json 表示 firebase functions 的过时版本
  • Cloud Firestore:强制执行唯一的用户名

    问题 我已经多次看到这个问题 也在 Firebase 实时数据库的上下文中 但我还没有看到令人信服的答案 问题陈述相当简单 经过身份验证的 用户如何选择尚未被占用的用户名 首先 why 用户通过身份验证后 拥有唯一的用户ID 然而 许多网络
  • 将 Firebase FCM 添加到 ReactJS 应用程序

    我正在尝试向我的 ReactJS 应用程序中的用户发送推送通知 我已添加 firebase 请求用户通知权限 这正在发挥作用 但现在我想注册设备令牌 但这给了我错误 消息传递 我们无法注册默认的 Service Worker 无法注册 Se
  • 在没有前端的情况下从 firebase auth 模拟器获取用户的未签名令牌

    我正在编写一个自定义后端 nestjs 其中我想验证来自 firebase auth 的令牌是否有效并检索用户信息 我不想使用实际的 firebase 身份验证 因此我最终使用了 firebase 本地模拟器 现在我想使用 postman
  • firebase 和 firebase-admin npm 模块有什么区别?

    我想使用 Firebase 身份验证 数据库和存储 构建 Node js Web 应用程序 但我对应该使用哪个模块感到困惑 firebase or firebase 管理员 或两者 管理 SDK 运行您的代码管理权限 https fireb
  • Firebase:如何在Android应用程序中设置默认通知渠道?

    如何设置default通知渠道通知消息当应用程序在后台运行时会出现什么情况 默认情况下 这些消息使用 杂项 通道 如你看到的在官方文档中 https firebase google com docs cloud messaging andr
  • 升级到 firebase js sdk v8 后,在“firebase”中找不到导出“firestore”(导入为“firebase”)

    我已将 firebase JS SDK 从 v7 升级到 v8 0 0 并且像这样导入 firebase import as firebase from firebase 访问以下任何一项都会导致以下错误 firebase firestor
  • 如何使用 Firebase 托管来托管映像?

    Issue 如何使用 Firebase 托管来托管图像文件 我目前正在 Firebase 中执行这些步骤应用程序内消息传递设置要在应用程序内向用户显示的消息 当要求提供图片网址对于 UI 建议使用的消息Firebase 托管 https f
  • Firebase 如何帮助在 Google 标签管理中触发标签

    我试图了解 firebase 对 google 标签管理的作用是什么 根据GTM文档记录事件和变量 https developers google com tag manager android v5 log events and vari
  • Firebase ANR - 甚至不使用 firebase

    随着 GMS 的最新更新 引入了新的 ANR 如果您退出应用程序 然后返回 则 ANR 就会初始化 线程跟踪似乎指向 Firebase 但我什至从未开始使用 Firebase 我猜它一定是新的 GMS 包的一部分 06 11 00 34 0
  • 无法以角度正确导入 fireStore 模块

    我在运行 Angular 项目时收到此错误 这可能意味着库 angular fire firestore 声明 AngularFirestore 尚未被 ngcc 正确处理 或者 与 Angular Ivy 不兼容 检查是否有较新的版本 由
  • ReferenceError:找不到变量:需要

    我在加载时遇到问题node modules到我的网页之一 我已经安装了 npm node js 并且我想使用require 函数在我的网站上初始化 Firebase 我不知道为什么 但它抛出引用错误 ReferenceError 找不到变量
  • Google App Engine - 节点:找不到模块“firebase-admin”

    第一次在这里部署 GAE 应用程序 我尝试遵循本教程 https firebase googleblog com 2016 08 sending notifications Between android html https fireba

随机推荐