目前我是这样做的:
DatabaseReference reference = FirebaseDatabase.DefaultInstance.GetReference("Leaders").Child("List1");
reference.GetValueAsync().ContinueWith(task =>
{
int totalChildren = (int)task.Result.ChildrenCount;
//Do more stuff
}
我想,为什么要整张快照来统计孩子的数量。
在不获取整个快照的情况下,有什么不同的方法吗?
Firebase没有内置计数运算符。因此,您要么必须下载所有子节点来对它们进行计数(就像现在所做的那样(,要么保留一个单独的属性来跟踪子节点的数量。
后者在写作时需要更多的工作,但会导致更简单的阅读性能。您会发现这种读写性能在NoSQL数据库中是一种常见的折衷。
有关更多信息,请参阅:
- 在Firebase中,有没有一种方法可以在不加载所有节点数据的情况下获得节点的子节点数
- 父级的Firebase计数num个子级
- 如何在不获取所有元素的情况下在Firebase中获取元素/列表的大小