我读过这篇文章answer其中表示使用 get()
函数时无需删除任何监听器,这是否适用于 set()
、update()
和delete()
?
如何区分监听器何时需要移除?我很困惑,几天来我一直在与听众的事情作斗争。谢谢。
最佳答案
如果您实际上使用的是真正的监听器,即监听记录上的实时更新,则只需删除监听器。因此,如果您只是使用 get
或 set
或 update
或 delete
,这些都是一次性事件addListenerForSingleValueEvent
,尽管名称如此,但不需要真正的监听器(并且不需要删除任何监听器)。您可能只需要一个完成处理程序(例如,addOnSuccessListener
),以便您可以在查询完成后执行某些操作。
如果您使用的是 onDataChange
之类的东西,您将轮询/监听数据以了解更改,并且当您切换屏幕或离开该组件时,您需要删除该监听器。
由于这个原因,Java/Kotlin 中的命名有点令人困惑 - 想象一个监听器,如果您观看或,则需要将其删除以轮询方式监控数据。如果您只是进行一次性交易,则无需删除任何内容。
关于java - 我什么时候应该删除 OnCompleteListener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57393505/