Ho un problema durante la rimozione di un osservatore Firebase nel mio codice. Ecco la ripartizione della struttura:Firebase rimozione osservatori
var ref = Firebase(url:"https://MY-APP.firebaseio.com/")
var handle = UInt?
override func viewDidLoad() {
handle = ref.observeEventType(.ChildChanged, withBlock: {
snapshot in
//Do something with the data
}
}
override func viewWillDisappear(animated: Bool) {
if handle != nil {
println("Removed the handle")
ref.removeObserverWithHandle(handle!)
}
}
Ora, quando lascio la viewcontroller, vedo che "Rimosso il manico" è stampato, ma quando torno al viewcontroller, il mio osservatore è chiamato due volte per ogni evento. Quando esco e torno di nuovo, si chiama tre volte. Ecc. Perché l'osservatore non viene rimosso?
Io chiamo anche ref.setValue("some value")
più avanti nel codice, questo potrebbe avere qualcosa a che fare con esso?
Anche questo problema ha appena inviato un bug report al supporto di Firebase. Dal momento che non è stato risolto in 2 mesi, potrebbe non essere risolto in qualsiasi momento presto – Cymric
@Cymric Hey man, qualsiasi aggiornamento su questo? Qualsiasi risposta ? Ho davvero bisogno di alcune soluzioni qui. – Bonnke
Purtroppo no. Ho presentato un programma di esempio che riproduceva il bug del team di supporto di Firebase 4 mesi fa e da allora non ha più avuto notizie. Ti suggerirei di provare la soluzione alternativa di Daniel K qui sotto. – Cymric