Firebase 获取记录总数的更好方法

标签 firebase

从交易文档,第二段:

The intention here is for the client to increment the total number of chat messages sent (ignore for a moment that there are better ways of implementing this).



有哪些标准的“更好的方法”来实现这一点?

具体来说,我正在尝试做一些事情,比如检索最近的 50 条记录。这要求我从列表的末尾开始,所以我需要一种方法来确定最后一条记录是什么。

我看到的选项:
  • 每次添加记录时使用事务更新计数器,将计数器值与 setPriority() 一起用于排序
  • forEach() 父级并读取所有记录,在客户端进行我自己的排序/过滤
  • 编写服务器代码来分析 Firebase 表并创建索引列表,例如“mostRecent Messages”和“totalNumberOfMessages”

  • 我错过了明显的选择吗?

    最佳答案

    要查看列表中的最后 50 条记录,只需调用“limit()”,如下所示:

    var data = new Firebase(...);
    data.limit(50).on(...);
    

    Firebase 元素首先按优先级排序,如果优先级匹配(或没有设置),则按名称按字典顺序排列。 push() 命令自动创建按时间顺序排列的元素,因此如果您使用 push(),那么使用 limit() 不需要额外的工作。

    要计算列表中的元素,我建议添加一个“值”回调,然后遍历快照(或执行我们提到的事务方法)。文档中的注释实际上是指我们尚未发布的一些即将推出的功能,这些功能将允许您计算元素而无需先加载它们。

    关于Firebase 获取记录总数的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11461937/

    相关文章:

    ios - ios 发布版本中的 FCM InvalidRegistration 错误

    javascript - 公理 : Request header field Access-Control-Allow-Methods is not allowed by Access-Control-Allow-Headers in preflight respones

    firebase - 需要 JavaScript 模块脚本,但服务器以 MIME 类型 "text/html"进行响应

    firebase - Firebase 身份验证自定义声明和没有写入权限的 Firestore 文档有什么区别?

    Android Studio - 程序类型已存在 : com. google.android.gms.location.places.zza

    android - Firebase 用户在调用 updateProfile() 方法后不再匿名

    java - 如何使用 Content Provider 将文件放入 firebase (内容 ://) as source?

    firebase - 应用程序中的 Firestore 查询给出权限被拒绝,而模拟器工作正常

    android - 混合版本会导致 Firebase 中的运行时崩溃吗?

    firebase - 一个项目的 Firebase 远程配置中可以拥有的参数数量限制是多少