firebase - Firestore 中的快照侦听器指标究竟是如何工作的?
问题描述
我正在构建一个颤振应用程序,并且我正在使用流来订阅 Firestore 查询结果。不幸的是,我不明白快照监听器指标是如何工作的,结合文档中的这个花絮:
27 个峰值是否意味着我以某种方式创建了 27 个听众(当我应该做一个时)?我很困惑。
另请注意,我与我的应用程序进行了 0 次交互,只是让它运行..
解决方案
在 Firestore 中,每次添加onSnapshot
方法时,都会为该用户创建一个新的快照侦听器。因此,根据您的打印,您有 1 个用户连接到您的应用程序(1 个活动连接),并且该用户有 27 个连接到它的侦听器。因此,您似乎从 27 个 Firestore 查询中获得了实时更新,或者您没有关闭您的连接。
来自 Firebase 文档的第 3 个参考:
假设用户在他们的手机上打开了您的应用程序。然后,该应用连接到 Cloud Firestore 并订阅 10 个查询。这会使您的指标增加 1 个活动连接和 10 个快照侦听器。
不好吗?
即使您没有为这些活动连接或侦听器付费,但每次读取/更新文档时,这将被视为新读取,并且最终会收取费用。因此,使用太多听众并不是最佳做法。
该怎么办?
我要说的第一件事是仔细检查组件/视图关闭后是否保持侦听器打开。如果你找到了,别忘了把它们分开。
参考
- [1]监听器定价的 Firebase 描述
- [2]分离监听器
- [3]云监控Dashboard讲解
推荐阅读
- haskell - 使用 Aeson 时如何使用 sum 类型作为 map 中的键?
- node.js - 无法通过 Google Cloud Vision API 处理 PDF
- python - 如何使用 gitpython repo.archive() 作为标签
- javascript - 填充数据后 Javascript 为空
- algorithm - 使用最小优先级队列时,如何跟踪 Dijkstra 算法中的最短路径?
- java - 如何使用 apache-poi 将数据透视表样式从默认蓝色更改为其他颜色
- javascript - 如何在单独的js文件中实现类构造函数中的路由器(express)
- r - 如何计算多个数字列的每行平均值
- asp.net-core - Microsoft.Entity.FrameworkCore 中发生版本冲突
- x11 - Ghostscript 在错误的地方寻找 dyld 库