我是否必须始终在Firestore中删除侦听器?

时间:2018-06-14 12:54:34

标签: ios firebase firebase-realtime-database listener google-cloud-firestore

我真的很困惑,当我收听Firestore数据库时删除监听器的好处是什么。我试图找到文档,但我找不到它

我通常会在viewWillDisappear中删除侦听器。从这里的视频https://www.youtube.com/watch?v=rvxYRm6n_NM可以看出,删除监听器的好处是减少电池和数据的使用,因此我觉得如果我总是在视图消失之前删除监听器会很好。

var userListener : ListenerRegistration?

override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)

        // removing listener
        guard let userListener = userListener else {return}
        userListener.remove()

    }

但是当我在这里阅读firestore定价https://firebase.google.com/docs/firestore/pricing

据说:

  

此外,如果监听器断开连接超过30分钟(对于   例如,如果用户离线),您将被收取读取费用   如果您发布了一个全新的查询。

如果我删除了监听器,它是否与断开连接一样?因为它会影响阅读的文件数量。

那么删除监听器的最佳时间是什么?删除监听器的优缺点是什么?

1 个答案:

答案 0 :(得分:1)

在我看到的大多数场景中,当需要数据的视图消失时,开发人员会删除他们的侦听器。当您重新连接侦听器时,确实可能需要在服务器上读取其他文档,以检查它们是否已更新。但另一种方法是保持连接开放,这可能导致额外的电池消耗和带宽使用。其中哪一个更适合您的应用,只有您可以告诉。