我可以使用句柄删除Firebase观察者,只使用根参考吗?

Pav*_*rel 4 ios firebase swift firebase-realtime-database

我将所有观察者都放在一个自定义的"数据库"类中,该类具有一些观察引用并通过闭包传递结果的函数和协议.因此,我在某些视图控制器中不需要Firebase引用,只需要该类的一个实例.所以我的问题是,删除一个带有句柄的观察者是否需要特定的引用?

或者我可以做 FIRDatabase.database().reference().removeObserver(withHandle: handle) (可能在那里有一些特定用户的路径),删除观察者?

Kat*_*ato 6

不幸的是,您需要在添加它的同一节点上删除它.请记住,您可以在多个节点位置添加处理程序,甚至每个位置添加一次,因此这有一定道理.

请注意,您可以调用removeAllObservers来删除任何引用,而不使用句柄,但同样,这只会影响特定路径,并且不会递归地应用于子路径.