我的应用程序正处于开发阶段...目前一次只有5-8个用户。我们有一些.onSnapshot的听众--总共可能有5到6个。我们每天的“免费”阅读量已经超过了50K。我不确定是什么使这个数字如此之高。我担心,一旦我们发布应用程序,并拥有100或希望1000或更多的用户,阅读量将膨胀,并创造显着的成本。底层数据没有那么频繁地更改。
是什么驱动了读操作的数量?onSnapshot侦听器是否每秒、每毫秒都在运行?我们如何最大限度地减少读取次数
非常感谢您的帮助。
发布于 2021-03-01 23:01:50
如果使用不当,OnSnapshot()监听器可能会占Firestore账单的很大一部分,并且应用程序上的监听器越多,账单就越大,因此应该谨慎使用这些监听器,正如您在this FAQ for Firestore上看到的那样
当您监听查询结果时,每次添加或更新结果集中的文档时,都会收取读取费用。当文档由于文档已更改而从结果集中删除时,您还需要为读取操作付费。
更不用说,每次你“开始”听的时候,你都会被收取初始查询集的费用。
也就是说,在你的特殊情况下,当你不再需要监听器时,你不会分离它们,正如你提到的,你有5到6个监听器,我认为它们可能不在你应用程序执行周期的同一个“页面”中。正如您在此community answer中所看到的那样
从你调用onSnapshot的那一刻起,Firebase就会监听快照的变化,直到你告诉它停止为止。因为您的代码从来不会告诉它停止,所以侦听器会继续,即使您离开了它。然后,当您导航回/Pie时,您将附加第二个侦听器。因此,此时您的onSnapshot侦听器将执行两次。
你会有两倍的成本,现在让我们将其乘以5或6倍,这可能是你获得尽可能多的阅读量的原因。我建议您在每次不再需要监听器运行时将其分离,您可以在此documentation中找到有关如何执行此操作的说明
https://stackoverflow.com/questions/66395181
复制相似问题