如何在不获取全部信息的情况下获取 Firebase 中元素/列表的大小?

IT技术 javascript firebase firebase-realtime-database
2021-02-06 10:08:04

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

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

ps Javascript SDK

2个回答

Firebase 没有计数运算符,因此唯一的方法是下载所有子项保持单独的<children>_count属性同步。后者不是一项微不足道的任务(请参阅我在此处的答案以了解一种方法和此示例 Cloud Function),因此大多数情况下,开发人员最终可能会采用下载过多数据但很简单的方法:

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

计算子项的更有效方法是使用shallow=true参数触发 REST 调用,这将只为您提供密钥。请参阅在 Firebase 中,有没有办法在不加载所有节点数据的情况下获取节点的子节点数?

还发现了一个帖子,它以不同的方式...

Object.keys(users).length;

Post:JavaScript 对象的长度

为什么这是一个糟糕的解决方案?
2021-03-25 10:08:04
因为问题有明确的陈述:-“但我不需要真实内容”,其中用户变量包含真实内容。
2021-04-09 10:08:04