是否应该避免同时添加多个 Firestore 快照侦听器?

Posted

技术标签:

【中文标题】是否应该避免同时添加多个 Firestore 快照侦听器?【英文标题】:Should adding multiple Firestore snapshot listeners simultaneously be avoided? 【发布时间】:2020-09-27 17:46:34 【问题描述】:

这是一个很难调试的问题,因为我不确定问题出在哪里,而且我无法故意重现它。我有一个 ios 应用程序,它最多可以有大约 15 个在应用程序启动时实例化的 Firestore 快照侦听器。有时监听器会挂断并且永远不会返回,有时它会产生网络连接错误,但大多数时候它不会产生任何错误——它只是变得并保持无响应,直到应用重新启动。

我认为可能同时实例化了太多快照侦听器,因此我将它们的实例化错开几秒钟(添加不影响 UI 或应用程序最后启动本身的侦听器)。它似乎已经解决了这个问题,因为从那以后我就再也没有遇到过,但是再次证明,重现这个问题非常困难。

因此,是否应该避免同时添加多个快照侦听器?是否有充分的理由说明同时添加太多可能会导致其中一些出现意外行为?

【问题讨论】:

【参考方案1】:

在Firestore best practices documentation 中,您可以看到建议将每个客户端的快照侦听器数量保持在 100 以下,并避免在同一连接中频繁添加或删除快照侦听器,因为这可能会导致性能问题。

【讨论】:

以上是关于是否应该避免同时添加多个 Firestore 快照侦听器?的主要内容,如果未能解决你的问题,请参考以下文章

无法访问 Firestore 快照中的数据以将标记添加到存储在 Firebase 中的 Google 地图

可以从 Firestore 快照 Flutter 中获取元数据吗?

如何从 Vuex 商店中删除 Firestore 快照侦听器

Firestore 和 SwiftUI - 我的快照阅读器是不是不必要地读取数据库?

我应该啥时候分离我的 Firestore 监听器? [复制]

使用 Firestore 清理快照