Ich kann meine Einträge in Firebase erfolgreich aktualisieren, da sie auf der Konsole, nicht aber in der Tabellenansicht angezeigt werden. Wenn ich meine App neu starte, werden die Änderungen angezeigt, aber ich möchte, dass sie sofort angezeigt werden.Aktualisieren der Tabellenansicht nach dem Aktualisieren der Werte in Firebase
Meine Vorgehensweise besteht darin, das Array, das die Tabellenansicht füllt, so schnell wie möglich unter der Benachrichtigung "ChildChanged" zu bearbeiten.
ref.observeEventType(.ChildChanged, withBlock: { (snapshot) in
print("One of the entries were changed so we're reloading the table view")
if let firstname = snapshot.value?.objectForKey("firstname"), lastname = snapshot.value?.objectForKey("lastname")
{
let fullname = "\(firstname) \(lastname)"
names[I_Need_This_Index] = fullname
dispatch_async(dispatch_get_main_queue())
{
self.tableView.reloadData()
}
}
}, withCancelBlock: nil)
Wie Sie sehen können, ich brauche nur Index zu finden, was ich brauche, weil ich bereits die „Fullname“ Wert haben, der bearbeitete Wert ist, dass ich wünschte mit der Tabellen-Ansicht zu aktualisieren.
Wie würde ich das machen?
Das klingt nach etwas, was ich wahrscheinlich tun sollte. Der Wert meines Snapshots ist jedoch der neu aktualisierte Wert, während ich versuche, den alten Wert –
zu erhalten. Der alte Wert ist nicht im Änderungs-Snapshot enthalten. Sehen Sie sich die Dokumentation an: https://firebase.google.com/docs/reference/ios/firebasedatabase/interface_f_i_r_data_snapshot. Sie müssen den alten Wert bei Bedarf selbst erhalten. Eine andere Idee wäre, den ursprünglichen Snapshot als Tabellenansichtsmodell zu verwenden, um alle Informationen (Schlüssel, alter Wert usw.) zu erhalten. –
hmm..wie würde ich das machen? –