同时跟踪多用户的在线状态更改(ChatApp)

时间:2019-01-29 16:51:14

标签: swift firebase geofire

我想同时监视各个(!)用户的在线状态。 想象一下一个聊天应用程序,其中包含个人资料头像的集合视图。每个在线的个人资料都会有一个绿色的小按钮。

我正在使用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。

0 个答案:

没有答案
相关问题