我是否必须始终删除 Firestore 中的侦听器?
Do I have to always remove the listener in 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
据说:
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.
如果我删除监听器,它是否与断开连接一样?因为会影响文件读取数
so什么时候去掉listener最好,或者去掉listener有什么好处和坏处?
在我看到的大多数情况下,开发人员会在需要他们的数据的视图消失时移除他们的侦听器。当您重新连接侦听器时,这确实可能需要在服务器上读取其他文档,以检查它们是否已更新。但另一种方法是保持连接打开,这可能会导致额外的电池消耗和带宽使用。哪一个更适合您的应用,只有您自己知道。
我实际上很困惑,当我听 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
据说:
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.
如果我删除监听器,它是否与断开连接一样?因为会影响文件读取数
so什么时候去掉listener最好,或者去掉listener有什么好处和坏处?
在我看到的大多数情况下,开发人员会在需要他们的数据的视图消失时移除他们的侦听器。当您重新连接侦听器时,这确实可能需要在服务器上读取其他文档,以检查它们是否已更新。但另一种方法是保持连接打开,这可能会导致额外的电池消耗和带宽使用。哪一个更适合您的应用,只有您自己知道。