Firebase Observer未在Swift中删除

时间:2016-11-19 19:36:12

标签: swift firebase

班级:

let ref = FIRDatabase.database().reference()
var handler:FIRDatabaseHandle!

从屏幕上看来:

self.handler = self.ref.child("Requests").observe(.value, with: {(snapshot) in

最后:

override func viewDidDisappear(_ animated: Bool)
{
    super.viewDidDisappear(animated)

    self.ref.removeObserver(withHandle: self.handler)
    self.ref.removeAllObservers()
}

不幸的是,当在另一个视图中更改数据库时,仍会调用上面VC中的观察者。我明白我不应该同时删除,但我正在尝试一切。从断点我可以看到删除代码正在触发,我也可以看到观察者只被调用一次。

删除观察者时我缺少什么?

1 个答案:

答案 0 :(得分:5)

您正在从错误的引用中移除观察者。

let ref = FIRDatabase.database().reference().child("Requests")

尝试将此作为您的参考,然后:

self.handler = self.ref.observe(...