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

use*_*934 3 firebase google-cloud-firestore geofirestore

以下是我在 Firestore 使用情况仪表板中看到的快照侦听器的内容

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

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

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

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

Lua*_*fal 7

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

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

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

是不是很糟糕?

即使您没有为这些活动连接或侦听器付费,每次读取/更新文档时,这都将被视为新的读取,并且最终会收取费用。因此使用太多的听众并不是最佳实践。

该怎么办?

我要说的第一件事是仔细检查组件/视图关闭后是否没有保持侦听器打开。如果发现任何东西,请不要忘记将它们拆下。

参考