作者:杜甜甜Athena15 | 来源:互联网 | 2023-02-08 13:41
我将所有观察者都放在一个自定义的"数据库"类中,该类具有一些观察引用并通过闭包传递结果的函数和协议.因此,我在某些视图控制器中不需要Firebase引用,只需要该类的一个实例.所以我的问题是,删除一个带有句柄的观察者是否需要特定的引用?
或者我可以做
FIRDatabase.database().reference().removeObserver(withHandle: handle)
(可能在那里有一些特定用户的路径),删除观察者?
1> Kato..:
不幸的是,您需要在添加它的同一节点上删除它.请记住,您可以在多个节点位置添加处理程序,甚至每个位置添加一次,因此这有一定道理.
请注意,您可以调用removeAllObservers来删除任何引用,而不使用句柄,但同样,这只会影响特定路径,并且不会递归地应用于子路径.