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

问题描述

Here's what I see in my Firestore usage dashboard for snapshot listeners

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

https://firebase.google.com/docs/firestore/best-practices#realtime_updates

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

还要注意,我与我的应用程序进行了 0 次交互,只是让它继续运行..

解决方法

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

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

假设用户在手机上打开了您的应用。然后,该应用连接到 Cloud Firestore 并订阅 10 个查询。这会将您的指标增加 1 个活动连接和 10 个快照侦听器。

不好吗?

即使您没有为那些活跃的连接或听众付费,每次阅读/更新文档时,这都会算作一次新的阅读,并且最终会收费。因此,使用过多的侦听器并不是最佳做法。

怎么办?

我要说的第一件事是仔细检查您是否在组件/视图关闭后没有打开监听器。 如果你发现任何,don't forget to detach them.

参考文献