如何计算Reference具有的快照数量?

时间:2017-07-13 19:13:43

标签: android firebase firebase-realtime-database

我想知道如何在Firebase中计算Reference内部快照的数量,因此下一个示例我可以获得值为5的值。

pod 'GoogleMaps'
pod 'GooglePlaces'

我只想在应用程序启动时计算,而不是在每个数据库更改中计数,所以我不打算在引用上使用ValueEventListener或SingleValueEventListener。

这可能吗?

2 个答案:

答案 0 :(得分:0)

要计算引用所具有的子项数,您必须添加ValueEventListener,然后在dataSnapshot.getChildrenCount()方法中调用onDataChange(DataSnapshot dataSnapshot)

但是,除此之外,您可以做的是,您可以在数据库中拥有一个单独的节点,该节点包含您需要计算其子节点的节点的子节点数的值(整数)。您可以将节点命名为Reference-ChildrenNumber。只要在需要跟踪的引用中插入或删除数据,就可以更新此节点。然后,当您需要此数据时,您可以只读取此节点并获取计数,而不是下载参考节点的全部内容。

我建议您在transaction中进行这些更改,以便并发写入不会导致数据不正确。此外,您可以从客户端执行此操作,但我建议您使用Cloud Functions for Firebase。您正在使用云功能寻找的确切示例是this

答案 1 :(得分:0)