Firebase iOS SDK - 如何计算性能良好的孩子数量?

时间:2016-10-15 10:24:10

标签: ios swift firebase firebase-realtime-database

我有这种JSON树:
enter image description here

在我的应用程序的主页上,我想只显示该组中的组列表和邮件数量。

在正常情况下,我会获取所有聊天记录并显示每个群组聊天消息的计数,但如果有更多群组,这样做会产生很大的效果。

我发现this用于网络API并已过时,但不适用于iOS SDK。

那么如何在不检索所有邮件的情况下获取group1的邮件数?

1 个答案:

答案 0 :(得分:2)

如何在每个组下添加 noOfMessages 节点,并在每次使用组消息计数更改时更新它。你必须在一段时间内查询noOfChildren,对吗?但这种方式并非每次都如此。

对我来说,我刚刚创建了一个 func countNodes() ,每次添加一个子项时都会被触发,或者你可以在NSTimer中使用timeInterval,正如你所说的那样昂贵。

但是使用 .childAdded ,您只会收到附加的键值对而不是整个节点的值,然后您需要做的就是更新 {{1 } 节点的值为 .childAdded 计数。

至于您的情况,请将您的结构更改为: -

noOfMessages

为每个eventType chats :{ group1 : { ... }, }, noOfMessages :{ group1 : 18, group2 : 76, .... } 组添加一个观察者。

.childAdded

获取noOfMessages计数: -

FIRDatabase.database().reference().child("chats/group1").observeSingleEvent(of: .childAdded, with: {(snap) in

        //Run transaction to update your noOfMessage Count

    })