我让所有观察员都在一个自定义数据库'具有一些函数和协议的类,它们观察引用并通过闭包传递结果。因此,我在某些视图控制器中不需要Firebase引用,只是该类的一个实例。 所以我的问题是,删除一个带有句柄的观察者是否需要特定的引用?
或者我可以这样做
FIRDatabase.database().reference().removeObserver(withHandle: handle)
(可能有某些特定用户的路径),删除观察者?
答案 0 :(得分:6)
不幸的是,您需要在添加它的同一节点上删除它。请记住,您可以在多个节点位置添加处理程序,甚至可以在每个位置添加多个处理程序,因此这是有道理的。
请注意,您可以调用removeAllObservers删除任何引用,而不使用句柄,但同样,这只会影响特定路径,并且不会递归地应用于子路径。