Ich versuche, einige Daten mithilfe der Beobachtung (. ChildAdded) abrufen, um die neuen "Beiträge" meines Projekts und fügen Sie es in der Tabellenansicht korrekt. Ich habe tatsächlich das Ergebnis, das ich brauche, mit dieser Funktion.Holen Sie Daten von firebase mit childAdded in firebase
databaseHandle = ref?.child("Posts").observe(.childAdded, with: { (snapShot) in
let post = snapShot.value as? String
if let actualPost = post {
self.postData.insert(actualPost, at: 0)
self.tableView.reloadData()
}
})
Aber es funktioniert nur für ein Kind, das einen Wert darauf wie diese in Firebase hat:
*Root
*Posts
*ChildByAutoId: "post text value"
Eigentlich, was ich möchte haben, ist ein Kind mit Attributen wie folgt aus:
Ich möchte das gleiche Ergebnis haben wie .observe (.childAdded), aber ich kann es nicht tun. Die einzige Art, wie ich, dass seine Zeit gefunden arbeiten, ist dies:
func recuperarData(){
let ref = self.ref
ref?.child("Posts").queryOrderedByKey().observeSingleEvent(of: .value, with: { (snapShot) in
if let posts = snapShot.value as? [String : AnyObject]{
for (_, value) in posts{
let post = Posts()
if let autor = value["Author"] as? String ,let likes = value["Likes"] as? Int, let fecha = value["CreationDate"] as? String, let postId = value["PostID"] as? String, let texto = value["Text"] as? String, let userID = value["UserId"] as? String {
post.autor = autor
post.likes = likes
post.fecha = fecha
post.PostId = postId
post.texto = texto
post.UserId = userID
self.posts.append(post)
}
}
self.tableView.reloadData()
}
})
ref?.removeAllObservers()
}
Aber das alle Daten nur abrufen Sobald jedes Mal, wenn ich den Tableview „reload“ und fügen Sie nicht die Beiträge richtig in der Reihenfolge ich will.
Kennt jemand eine korrekte Möglichkeit, diese Daten mit .observe (.childAdded) abzurufen, damit ich die Tabellenansicht automatisch aktualisieren kann.
Ich verwende Xcode 8.2.1 und schnellen 3 Dank
https://firebase.google.com/docs/database/ios/read-and-write –
Danke @NitinGohel, aber ich kann nicht den richtigen Weg finden, ich ritt bereits die Firebase-Dokumentation, aber es ist immer noch schwer für mich. – Andrew
Wenn Sie sagen, dass Sie nicht beobachten können (.childAdded), können Sie näher erläutern, was passiert, wenn Sie versuchen, es zu verwenden? Weil, von dem, was ich gerade sehe, ist es unklar, warum Sie .childAdded nicht einfach verwenden und ein Wörterbuch aus dem Snapshot erstellen können. Ein bisschen mehr Informationen würden mir helfen zu wissen, warum es nicht funktioniert. –