Отслеживать изменение статуса нескольких пользователей одновременно (ChatApp) - PullRequest
0 голосов
/ 29 января 2019

Я хочу отслеживать онлайн статус различных (!) Пользователей одновременно.Представьте себе приложение для чата с коллекцией аватаров профилей.Каждый онлайн-профиль будет иметь маленькую зеленую кнопку.

Я использую GeoFire для поиска пользователей в определенной области.Geofire возвращает мне набор UID.В моей базе данных у меня есть

/users/{uid}/name
/users/{uid}/lastname
/users/{uid}/onlinestatus = true/false

С набором идентификаторов, возвращаемых из GeoFire, я тогда делаю:

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.

...