iOS Firebase分离观察器侦听器

时间:2019-05-12 00:02:43

标签: ios swift firebase-realtime-database

我有一个包含两个选项卡的UITabBarController。两者都在观察Firebase数据的变化。

我看到的问题是,当我执行UITabBarController.dismiss时,两个选项卡中的侦听器仍处于活动状态。有人解雇时,有人知道Firebase是否删除了侦听器吗?还是应该手动删除侦听器?当我关闭此UITabBarController时,我想杀死其侦听器内部的所有viewController。

我知道建议是在viewDidAppear和viewWillDissAppear上添加和删除侦听器,主要的问题是人员列表,并且我不想每次用户转到main时都刷新列表页面。

其他人也遇到同样的问题吗?在Android上很容易,因为一切都会通过onDestroy()方法破坏,但是我在iOS上是新手,所以我可能会丢失一些东西。

1 个答案:

答案 0 :(得分:0)

这取决于一点。

如果您在监听器上附加observeSingleEvent(of:,则在返回第一个结果后,该监听器将自动删除。

如果您在监听器上附加observe,则只有在您call removeObserverWithHandle时才会将其删除。

请注意,不能保证在Android onDestroy()上可以运行它,因此您也不应该在那里依赖它。通常,如果您希望监听器的寿命比单个“活动/视图”的寿命长,则应该为他们实施自己的生命周期管理。