在我的应用程序的主页上,我想只显示该组中的组列表和邮件数量。
在正常情况下,我会获取所有聊天记录并显示每个群组聊天消息的计数,但如果有更多群组,这样做会产生很大的效果。
我发现this用于网络API并已过时,但不适用于iOS SDK。
那么如何在不检索所有邮件的情况下获取group1的邮件数?
答案 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
})