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

sar*_*rah 2 listener ios firebase firebase-realtime-database 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()

    }
Run Code Online (Sandbox Code Playgroud)

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

据说:

此外,如果侦听器断开连接超过 30 分钟(例如,如果用户下线),您将被收取读取费用,就像您发出了一个全新的查询一样。

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

那么删除侦听器的最佳时间是什么,或者删除侦听器的优缺点是什么?

Fra*_*len 5

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

  • 我还要补充一点,如果同一个文档在您的侦听器正在运行并且您的视图在后台进行多次更改时,您也将因用户永远不会看到的阅读而被收费。 (2认同)