Я пытаюсь получить список сообщений из моей базы данных Firebase, но это не работает. Конкретный кусок кода, с которым у меня возникают проблемы, это line ref.child("users").queryOrderedByKey().observeSingleEvent
. Когда я отлаживаю приложение, оно просто пропускает эту строку и приложение переходит на ref.removeAllObservers()
. Я вызываю правильные функции для извлечения из моей базы данных? Учебник, который я использую, взят из Swift3, поэтому он может быть устаревшим.
Я пробовал вызывать наблюдатель вместо Наблюдать за одним событием, но это имело тот же результат.
Вот моя функция fetchPosts:
func fetchPosts(){
let ref = Database.database().reference()
ref.child("users").queryOrderedByKey().observeSingleEvent(of: .value, with: {snapshot in
let users = snapshot.value as! [String : AnyObject]
for (_,value) in users {
if let uid = value["uid"] as? String{
if uid == Auth.auth().currentUser?.uid {
if let followingUsers = value["following"] as? [String: String]{
for(_, user) in followingUsers {
self.following.append(user)
}
}
self.following.append(Auth.auth().currentUser!.uid)
ref.child("posts").queryOrderedByKey().observeSingleEvent(of: .value, with: {(snap) in
let postsSnap = snap.value as! [String : AnyObject]
for(_, post) in postsSnap {
if let userID = post["userID"] as? String{
for each in self.following{
if each == userID{
let posst = Post()
if let author = post["author"] as? String, let likes = post["likes"] as? Int, let pathToImage = post["pathToImage"] as? String, let postID = post["postID"] as? String{
posst.author = author
posst.likes = likes
posst.pathToImage = pathToImage
posst.postID = postID
posst.userID = userID
self.posts.append(posst)
}
}
}
self.collectionview.reloadData()
}
}
})
}
}
}
})
ref.removeAllObservers()
}
Я надеюсь заполнить коллекцию представлением информации из моей базы данных Firebase. Нет сообщений об ошибках.