在分离Firebase句柄或删除所有观察者之前,我想检查是否有观察者在我的应用程序中监听,或者我想检查特定的句柄/观察者是否正在监听。我该如何实现?
答案 0 :(得分:1)
我找不到Firebase API来实现这一目标。我使用这种解决方法解决了该问题
var handle = ref.child("child").observe()
// check if nil before detaching listener
guard self.handle != nil else { return }
self.ref.removeObserver(withHandle: self.handle)
答案 1 :(得分:0)
或者,
如果您没有在同一个参考上设置多个观察者,则只需与观察者一起跟踪所有参考,然后对每个观察者调用removeAllObservers()
即可。这样,您就不必跟踪句柄并担心检查nil值。
例如,
var handle = ref.child("child").observe()
handle.removeAllObservers()