我想同时监视各个(!)用户的在线状态。 想象一下一个聊天应用程序,其中包含个人资料头像的集合视图。每个在线的个人资料都会有一个绿色的小按钮。
我正在使用GeoFire在特定区域搜索用户。 Geofire向我返回了一组UID。在我的数据库中
/users/{uid}/name
/users/{uid}/lastname
/users/{uid}/onlinestatus = true/false
然后使用从GeoFire返回的一组uid进行操作:
var userprofiles = [UserProfiles]()
var processses = uids.count
for uid in uids {
FirebaseAP.getprofile(uid:UID) { (userprofile)
processes -= 1
userprofiles.append(userprofile)
if processes == 0 {
// call completion handler
// update UI Userlist
}
}
}
我需要在每个UID上设置一个观察者,当该观察者关闭触发时,我将不得不在本地用户中寻找该用户并更新值。对我来说听起来不太方便。
最好的方法是什么?
请记住:我不监视1个用户,而是监视20、50,也许是300。