Firestore读取和缓存



我正试图了解更多关于从服务器读取和从缓存读取以及什么是可计费的。

Alex回答了一个类似的问题:

但是,如果您"一次又一次"地执行查询,只要它是相同的查询并且服务器上没有任何更改,那么您将不会被收取任何读取操作。发生这种情况是因为第二次执行查询时,结果来自缓存。

snapshot.metadata.isFromCache字段仍然是false时,我们如何知道第二个查询(与第一个相同)来自缓存?另一个来自Alex的人在这里表达了类似的想法。

根据Doug在这里的评论,他说:

底线是:除非您离线或显式查询缓存,否则您将为来自服务器的所有结果付费。

这些似乎是相反的观点。我知道我可以显式地查询缓存,这是没有问题的。我只是想知道,如果我运行相同的查询10次,每次返回10个文档(类似于Alex的示例/评论),我会为100次阅读或10次阅读收费吗?(假设网络始终可用)。

任何想法吗?提前谢谢。

我写了一篇文章

如何在Firestore中没有更改文档时大幅减少读取次数?

我已经解释了关于Firestore计费的一切。我还添加了一个关于如何在数据库中没有文档更改时减少读取次数的解决方案。

并回答你的问题:

但是,如果您"一次又一次"地执行查询,只要它是相同的查询并且服务器上没有任何更改,那么您将不会被收取任何读取操作。

只要(实时)侦听器保持活动状态,就会发生这种情况。

关于第二个答案,如果您正在侦听实时更改并执行第二个查询,则在30分钟限制内,结果将始终来自缓存。但是,如果您只使用get()调用,那么每次执行这样的操作时,您都将按照执行全新查询的情况计费。

当您处于离线状态时,只要您启用了离线持久性(在Firestore中默认是启用的),您将始终从缓存中读取数据。缓存读取有没有成本。

如果我运行相同的查询10次,每次返回10个文档(类似于Alex的示例/评论),我将为100次读取或10次读取收费?

如果你使用get()调用,你将被收取100次读取费用,但如果你正在监听实时更新,并且监听器在30分钟内没有断开连接,那么你只需要支付10次读取费用。

相关内容

  • 没有找到相关文章

最新更新