如何知道Firebase查询何时结束

时间:2015-07-07 21:12:17

标签: javascript node.js firebase

我想从我的数据存储中收集最新的10个项目。我相信我应该使用.child().limitToLast()执行此操作,每次将结果添加到子项时都会发出事件。

我不一定知道总共有10个项目,所以一个简单的计数器不会起作用。

我如何知道Firebase何时完成给我结果?

示例查找代码:

var plots = [];
firebaseDatastore.child("plots").orderByChild("unicode-timestamp").limitToLast(10).on("child_added", function(snapshot) {
    // Add the new item to the list
    plots.push(snapshot.val());
});

我需要知道最后的情节何时被添加,无论它是否达到了极限。

1 个答案:

答案 0 :(得分:3)

Firebase查询永远不会真正结束。它继续通过unicode-timestamp监视(在您的情况下)绘图,并保留最后10个绘图的“窗口”。

所以:

  • child_added:timestamp1
  • child_added:timestamp2
  • ...
  • child_added:timestamp9
  • child_added:timestamp10

然后当你添加另一个情节时:

  • child_removed:timestamp1
  • child_added:timestamp11

如果您不想使用此行为,则有两种选择:

  1. 使用value事件,然后snapshot.forEach使用子节点
  2. 当你达到预期的孩子数量时
  3. 保留一个柜台和off你的听众