4

来自交易文档,第二段:

这里的目的是让客户端增加发送的聊天消息的总数(暂时忽略有更好的实现方式)。

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

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

我看到的选项:

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

我错过了明显的选择吗?

4

1 回答 1

5

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

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

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

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

于 2012-07-13T00:05:41.477 回答