我有一个包含两个选项卡的UITabBarController。两者都在观察Firebase数据的变化。
我看到的问题是,当我执行UITabBarController.dismiss时,两个选项卡中的侦听器仍处于活动状态。有人解雇时,有人知道Firebase是否删除了侦听器吗?还是应该手动删除侦听器?当我关闭此UITabBarController时,我想杀死其侦听器内部的所有viewController。
我知道建议是在viewDidAppear和viewWillDissAppear上添加和删除侦听器,主要问题是人员列表,我不想每次用户转到主页时都刷新列表。
还有其他人遇到同样的问题吗?在Android上很容易,因为所有内容都可以通过onDestroy()方法破坏,但是我在iOS上是新手,所以我可能丢失了一些东西。
最佳答案
这要看一点。
如果为observeSingleEvent(of:
附加了侦听器,则在返回第一个结果后,它将自动删除。
如果您在observe
上附加了侦听器,则只有在call removeObserverWithHandle
时才会将其删除。
请注意,在Android上onDestroy()
不能保证能够运行,因此您也不应该在那里依赖它。通常,如果您希望侦听器的寿命比单个“活动/视图”的寿命长,则应该为他们实施自己的生命周期管理。
关于ios - iOS Firebase分离观察器监听器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56095183/