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

时间:2012-07-12 22:59:10

标签: firebase

来自交易文档,第二段:

  

这里的意图是客户增加总数   发送聊天消息(暂时忽略有更好的方式   实施这个)。

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

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

我看到的选项:

  • 每次添加记录时都使用事务更新计数器,使用带有setPriority()的计数器值进行排序
  • forEach()父母并阅读所有记录,在客户端进行自己的排序/过滤
  • 编写服务器代码以分析Firebase表并创建索引列表,例如“mostRecent Messages”和“totalNumberOfMessages”

我错过了明显的选择吗?

1 个答案:

答案 0 :(得分:5)

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

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

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

要计算列表中的元素,我建议添加一个“值”回调,然后迭代快照(或者执行我们提到的事务方法)。文档中的注释实际上是指我们尚未发布的一些即将推出的功能,它们允许您在不加载元素的情况下对元素进行计数。