如何在Firebase中获取元素/列表的大小而不是全部?

时间:2016-07-18 18:14:51

标签: javascript firebase firebase-realtime-database

我需要在Firebase中测量元素或列表的大小/长度,但我不需要真正的内容。

firebase.database().ref("users/").once("length" || "size").then(callback)

这样的东西

ps Javascript SDK

2 个答案:

答案 0 :(得分:52)

Firebase没有计数运算符,因此唯一的方法是下载所有子项保持单独的<children>_count属性同步。后者不是一项微不足道的任务(请参阅我的answer here for one approach),因此大多数情况下,开发人员可能最终会采用下载过多的数据而非简单的方法:

ref.child("messages").on("value", function(snapshot) {
  console.log("There are "+snapshot.numChildren()+" messages");
})

计算子项的一种更有效的方法是使用shallow=true参数触发REST调用,这将为您提供密钥。见In Firebase, is there a way to get the number of children of a node without loading all the node data?

答案 1 :(得分:-1)

还找到了一条采用不同方式的帖子...

Object.keys(users).length;

帖子:Length of a JavaScript object