Ich habe ein Problem beim Entfernen eines Firebase-Beobachters in meinem Code. Hier ist eine Gliederung der Struktur:
%Vor%Jetzt, wenn ich den Viewcontroller verlasse, sehe ich, dass "Removed the handle" gedruckt wird, aber wenn ich zum Viewcontroller zurückkehre, wird mein Observer zweimal für jedes Ereignis aufgerufen. Wenn ich gehe und wieder zurückkehre, heißt es dreimal. Usw. Warum wird der Beobachter nicht entfernt?
Ich rufe später auch ref.setValue("some value")
im Code auf, könnte das etwas damit zu tun haben?
Da es April 2015 ist und der Fehler immer noch vorhanden ist, würde ich eine Problemumgehung für das Problem vorschlagen:
Die Griffe sind sehr klein (basierend auf einigen offiziellen Kommentaren :)), also wird es nicht so weh tun.
Beobachter müssen auf demselben Referenzpfad entfernt werden, auf den sie gesetzt wurden. Und für die gleiche Anzahl von Malen, die sie ausgegeben wurden, oder ref.removeAllObservers () für jeden Pfad verwenden.
Hier ist ein Trick, den ich benutze, um es ordentlich zu halten:
%Vor%... dann, Beobachter in viewDidLoad ():
%Vor%... dann, in ViewWillDisappear (), kümmern Sie sich um das Entfernen aller ausgegebenen Beobachter:
%Vor%