Синхронизированный массив (для лайков / подписчиков) Best Practice [Firebase Swift]
Я пытаюсь создать базовый следующий алгоритм, используя Swift и Firebase. Моя текущая реализация заключается в следующем:
static func follow(user: FIRUser, userToFollow: FIRUser) {
database.child("users").child(user.uid).observeSingleEventOfType(.Value, withBlock: { (snapshot) in
var dbFollowing: NSMutableArray! = snapshot.value!["Following"] as! NSMutableArray!
dbFollowing?.addObject(userToFollow.uid)
self.database.child("users/"+(user.uid)+"/").updateChildValues(["Following":dbFollowing!])
//add user uid to userToFollows followers array in similar way
}) { (error) in
print("follow - data could not be retrieved - EXCEPTION: " + error.localizedDescription)
}
}
Это извлекает массив из узла FirebaseFollowing
, добавляет идентификаторuserToFollow
и отправляет новый массив на узелFollowing
, Это имеет несколько проблем:
Мне было интересно, как лучше всего создать синхронизированный массив uid / токенов для подписчиков пользователей или лайков. Я нашел следующие ссылки, но, похоже, ни одна из них не имеет непосредственного отношения к моей проблеме и не несет с собой других проблем. Я подумал, что было бы разумно попросить сообщество с опытом, а не Франкенштейном, найти кучу решений вместе.
https://firebase.googleblog.com/2014/05/handling-synchronized-arrays-with-real.html https://firebase.google.com/docs/database/ios/save-data (сохранить данные как раздел транзакции)
Спасибо за вашу помощь!