首页 > 解决方案 > Firestore 中的快照侦听器指标究竟是如何工作的?

问题描述

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

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

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

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

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

标签: firebasegoogle-cloud-firestoregeofirestore

解决方案


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

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

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

不好吗?

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

该怎么办?

我要说的第一件事是仔细检查组件/视图关闭后是否保持侦听器打开。如果你找到了,别忘了把它们分开。

参考


推荐阅读