Firestore 中的快照侦听器指标究竟是如何工作的?

How exactly does the snapshot listener metric in Firestore work?

我正在构建一个 flutter 应用程序,我正在使用一个流来订阅 Firestore 查询结果。不幸的是,我不明白快照监听器指标是如何工作的,结合文档中的这个花絮:

27 个峰值是否意味着我已经以某种方式创建了 27 个听众(当我应该创建一个时)?我很困惑。

另请注意,我与我的应用进行了 0 次互动,只是离开了它 运行..

在 Firestore 中,每次添加 onSnapshot 方法时,都会为此用户创建一个新的快照侦听器。 因此,根据您的打印,您有 1 个用户连接到您的应用程序(1 个活动连接)并且该用户有 27 个听众。 因此,您似乎要么从 27 个 Firestore 查询中获得实时更新,要么没有关闭连接。

来自第 3 个参考,来自 Firebase 文档:

Let's say a user opens your app on their phone. The app then connects to Cloud Firestore and subscribes to 10 queries. This increases your metrics by 1 active connection and 10 snapshot listeners.

不好吗?

即使您没有为那些活跃的连接或听众付费,每次阅读/更新文档时,这都将算作一次新阅读,并且最终会收取费用。所以使用太多的听众并不是最好的做法。

怎么办?

我要说的第一件事是仔细检查您是否在关闭组件/视图后没有让侦听器保持打开状态。 如果你找到了,don't forget to detach them.

参考资料