ios - 我是否必须始终删除 Firestore 中的监听器?

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

我实际上很困惑,当我听 Firestore 数据库时,删除监听器有什么好处。我试图找到文档,但找不到

我通常总是在 viewWillDisappear 中移除监听器。来自这里的视频https://www.youtube.com/watch?v=rvxYRm6n_NM据说移除监听器的好处是减少电池和数据使用,基于此,我认为如果我总是在 View 消失之前移除监听器会很好。

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

据说:

Also, if the listener is disconnected for more than 30 minutes (for example, if the user goes offline), you will be charged for reads as if you had issued a brand-new query.

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

那么去除监听器的最佳时间是什么时候或者去除监听器的优缺点是什么?

最佳答案

在我看到的大多数情况下,当需要他们的数据的 View 消失时,开发人员会移除他们的监听器。当您重新连接监听器时,这确实可能需要在服务器上读取其他文档,以检查它们是否已更新。但另一种方法是保持连接打开,这可能会导致额外的电池消耗和带宽使用。哪一个更适合您的应用,只有您自己知道。

关于ios - 我是否必须始终删除 Firestore 中的监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50858077/

相关文章:

ios - Alamofire 使用未声明的类型 'Serializer'

ios - 不能在具有显式参数的闭包内使用匿名闭包

iOS:在后台运行应用程序并进行位置更新

java - 如何将查询传递给 FirestoreRecyclerOptions?

java - 关于 Android Firebase 检索数据(无 setter /字段错误)

ios - 使用 IOS-Swift 读取 firebase 实时数据库子节点

ios - 如何在 Swift 中使用 GRDB 创建多对多关联?

android - 从身份验证列表向 Firebase 上的所有用户发送电子邮件

javascript - ionic + JavaScript : How to create promise with Firebase

firebase - 在Firebase中查询文档时出现RangeError