我有一个包含两个选项卡的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/

10-15 14:11