Я загружаю данные из Firebase в свой пользовательский "CommentModel" (newComment):
// Load the comment with id
func observeComment(commentId: String, completion: @escaping (CommentModel) -> Void) {
let db = Firestore.firestore()
db.collection("comments").document(commentId).getDocument { (snapshot, error) in
guard let dic = snapshot?.data() else { return }
let newComment = CommentModel(dictionary: dic)
completion(newComment)
}
}
Моя модель:
import UIKit
class CommentModel {
var postId: String?
var userUid: String?
var postText: String?
var postDate: Double?
init(dictionary: [String: Any]) {
postId = dictionary["postId"] as? String
userUid = dictionary["userUid"] as? String
postText = dictionary["postText"] as? String
postDate = dictionary["postDate"] as? Double
}
}
Который дает мне следующий результат:
["user2" : 5], ["user1" : 4], ["user2" : 3], ["user1" : 2], ["user1" : 1]
Чего я пытаюсь достичь: вызвать функцию в "наблюдаемом" и добавить данные, если идентификатор пользователя еще не существует и если число меньше, чем существующего числа и загрузите его в новый «CommentModel», независимо от того, сколько у меня комментариев или пользователя.
Результат должен выглядеть следующим образом:
["user1" : 2], ["user1" : 1]
Поскольку у меня есть два идентификатора пользователя и возвращая наименьшее число.