- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在我的应用程序的主页上,我只想显示组列表和该组中的消息数。
在正常情况下,我会获取所有聊天记录并显示每个群聊消息的计数,但如果有更多群组,这样做会对性能产生很大影响。
我找到了 this适用于 Web API 且已过时,但不适用于 iOS SDK。
那么如何在不检索所有消息的情况下计算来自 group1 的消息数?
最佳答案
如何在每个组下添加一个 noOfMessages
节点,并在每次组消息计数更改时更新它。您将不得不在某个时候进行查询以计算 noOfChildren,对吗?但不是每次都这样。
对我来说,我刚刚创建了一个 func countNodes()
每次添加子项时都会触发它,或者您可以在 NSTimer 中使用 timeInterval,正如您所说太贵了。
但是对于 .childAdded,您只会收到附加的键值对,而不是整个节点的值,然后您要做的就是更新您的 noOfMessages
节点的值与 .childAdded 计数。
至于你的情况,将你的结构更改为:-
chats :{
group1 : {
...
},
},
noOfMessages :{
group1 : 18,
group2 : 76,
....
}
将观察者添加到您的每组事件类型 .childAdded
。
FIRDatabase.database().reference().child("chats/group1").observeSingleEvent(of: .childAdded, with: {(snap) in
//Run transaction to update your noOfMessage Count
})
获取 noOfMessages 计数:-
FIRDatabase.database().reference().child("noOfMessages/group1").observeSingleEvent(of: .value, with: {(snap) in
let count = snap.value as! Int
})
关于ios - Firebase iOS SDK - 如何计算表现良好的 child 数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40057852/
嗨,我正在考虑开发一种文件传输程序,想知道我是否想要尽可能好的加密,我应该使用什么? 我会用 C# 开发它,所以我可以访问 .net 库 :P在我的 usb 上有一个证书来访问服务器是没有问题的,如果
我创建的这个计算两个数组的交集是线性的方法的复杂度(在良好、平均、最差的情况下)? O(n) public void getInt(int[] a,int[] b){ int i=0; int
我已经能够使用 RTCPeerConnection.getStats() API 获得 WebRTC 音频调用的各种统计信息(抖动、RTT、丢包等)。 我需要将整体通话质量评为优秀、良好、一般或差。
基本问题: 如果我正在讲述/修改数据,我应该通过索引硬编码索引访问文件的元素,即 targetFile.getElement(5);通过硬编码标识符(内部翻译成索引),即 target.getElem
在 Linux 上,我想知道要调用什么“C”API 来获取每个 CPU 的统计信息。 我知道并且可以从我的应用程序中读取 /proc/loadavg,但这是系统范围的负载平均值,而不是每个 CPU 的
在客户端浏览器中使用 fetch api,GET 或 POST 没有问题,但 fetch 和 DELETE 有问题。它似乎将 DELETE 请求方法更改为 OPTIONS。 大多数研究表明是一个cor
我是一名优秀的程序员,十分优秀!