Ich habe eine einfache iOS-App, die 1.000 Kontakte mit meiner Firebase synchronisiert. persistenceEnabled
ist in meinem AppDelegate auf True festgelegt.Firebase ChildAdded Brennen jedes Mal in meiner iOS App
In meinem UITableViewController beobachte ich das ChildAdded-Ereignis, laden Sie die Kontakte und das funktioniert gut.
Das Problem ist das - das nächste Mal, wenn ich die App öffne, zurück zum UITableViewController, das ChildAdded-Ereignis erneut ausgelöst und lädt die 1.000 Kontakte.
Ich dachte, dass bei nachfolgenden Starts das ChildAdded-Ereignis nicht ausgelöst werden würde, da persistenceEnabled true ist und keine neuen Children hinzugefügt wurden.
Habe ich missverstanden, wie Firebase funktioniert?
ref.child("contacts").observeEventType(.ChildAdded, withBlock: { snapshot in
if let json = snapshot.value as? NSDictionary {
for key in json.keyEnumerator() {
if let dict = json.valueForKey(key as! String) as? NSDictionary {
let contact = Contact(data: dict)
contacts.append(contact)
}
}
}
})
Überprüfen Sie, ob dieser Code entweder von viewWillAppear oder von viewDidAppear aufgerufen wird. Wenn ja, dann wird es jedes Mal beobachten, wenn Sie zu diesem Controller zurück navigieren. –
Hallo Deepak, es wird in ViewWillAppear aufgerufen, aber das ist nicht das Problem. Ich erwarte, dass es jedes Mal beobachtet wird, wenn ich zum Controller zurück navigiere, aber ich erwarte nicht, dass es jedes Mal 1000 Kontakte zurückgibt. Ich hätte gedacht, es würde nur die 1.000 Kontakte das erste Mal zurückgeben. –