【发布时间】:2014-11-25 10:23:30
【问题描述】:
我在代码中删除 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!)
}
}
现在,当我离开视图控制器时,我看到打印了“已删除句柄”,但是当我返回视图控制器时,每个事件都会调用我的观察者两次。当我离开并再次返回时,它被调用了三遍。等等 为什么观察者没有被移除?
我也确实在后面的代码中调用了ref.setValue("some value"),这与它有什么关系吗?
【问题讨论】:
-
也有这个问题,刚刚向 Firebase 支持发送了一个错误报告。由于它在 2 个月内没有修复,可能不会很快修复
-
@Cymric 嘿伙计,这有什么更新吗?任何回应 ?我真的需要一些解决方案。
-
很遗憾没有。 4 个月前,我确实向 Firebase 支持团队提交了一个重现该错误的示例程序,但从那以后就没有收到他们的消息。我建议您尝试以下 Daniel K 的解决方法。
-
@Cymric 坏消息。就是这样。我正试图像丹尼尔解释的那样管理这个。谢谢大佬