Я пытаюсь получить Map data
У меня есть Firestore
, вот как это выглядит:
Я пытаюсь получить данные, исоздать массив Friend Object
и вернуть array
в completion handler
.
Вот что у меня есть:
func fetchFriendList(_ id: String, completion: @escaping([Friend]?)->()) {
var fetchedFriends: [Friend]?
db.collection(USERS_COLLECTION).document(id).getDocument { (doc, err) in
if err == nil && doc != nil {
guard let results = doc?.data()?[USER_FOLLOWING] as? [String: Any] else { return }
for result in results { // Getting the data in firebase
if let resultValue = result.value as? [String: Any] { // Getting only the value of the MAP data, we do not need the key.
//Getting the fields from the result
guard let id = resultValue[FRIEND_ID] as? String else { return }
guard let profilePic = resultValue[FRIEND_PROFILE_PIC] as? String else { return }
guard let username = resultValue[FRIEND_NAME] as? String else { return }
guard let email = resultValue[FRIEND_MAIL] as? String else { return }
//Creating a new Friend object from the fields
let friend = Friend(id: id, profilePicture: profilePic, username: username, email: email)
fetchedFriends?.append(friend)
}
completion(fetchedFriends)
}
}else {
print(err!.localizedDescription)
completion(nil)
}
}
}
Я попытался распечатать результаты, resultValue и т. д.,они не ноль. Но после попытки добавить и распечатать массив fetchedFriends я получаю ноль, а завершение также равно нулю. Я не очень понимаю, почему это происходит.