我在移除我的代碼中的Firebase觀察者時遇到問題。下面是結構的崩潰:Firebase移除觀察者
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!)
}
}
現在,當我離開的ViewController,我看到「刪除了手柄」被打印出來,但是當我返回到ViewController,我的觀察是對每個事件調用兩次。當我離開並再次返回時,它被稱爲三次。等等爲什麼觀察者不被移除?
我也在代碼後面打電話ref.setValue("some value")
,這可能與它有什麼關係嗎?
也有這個問題,只是發送了一個bug報告給firebase支持。由於它在2個月內不固定,可能不會很快修復 – Cymric 2015-02-13 00:39:54
@Cymric嘿男人,對此有何更新?任何迴應 ?我真的需要一些解決方案。 – Bonnke 2015-07-03 14:52:17
不幸的是沒有。我在4個月前向火力支持團隊提交了一個複製bug的示例程序,並且從那以後就沒有收到任何消息。我建議你嘗試下面的Daniel K的解決方法。 – Cymric 2015-07-03 15:04:18