Firebase查询是否收取额外的读取费用



firebase查询是如何工作的?

例如,如果我写这个查询,

var collectionReference = FirebaseFirestore.instance
.collection('collection')
.where(cond)
.where(cond2)
.where(cond3);

那么,这会只返回符合条件的文件吗?而我只会因为那些文件的阅读而被收取费用?

来自文档TL:DR

阅读费用有一些细微差别,你应该记住。以下各节将详细解释这些细微差别。收听查询结果

Cloud Firestore允许您侦听查询结果,并在查询结果更改时获得实时更新。

当您收听查询结果时,每次添加或更新结果集中的文档时,都会收取读取费用。当文档由于更改而从结果集中删除时,您还将收取读取费用。(相比之下,当文件被删除时,您不收取读取费用。(

此外,如果侦听器断开连接的时间超过30分钟(例如,如果用户离线(,您将被收取读取费用,就像您发出了一个全新的查询一样。管理大型结果集

Cloud Firestore有几个功能可以帮助您管理返回大量结果的查询:

游标,允许您恢复长时间运行的查询。

页面标记,可帮助您对查询结果进行分页。

限制,指定检索的结果数量

偏移,允许您跳过固定数量的文档。

使用游标、页面标记和限制没有额外成本。事实上,这些功能可以通过只阅读您实际需要的文档来帮助您省钱。

但是,当您发送包含偏移量的查询时,您将为每个跳过的文档收取读取费用。例如,如果您的查询使用10的偏移量,并且查询返回1个文档,则将收取11次读取的费用。由于这种额外的成本,您应该尽可能使用游标而不是偏移。文档读取以外的查询

对于文档读取以外的查询,例如请求集合ID列表,您将为一个文档读取付费。如果获取完整的结果集需要多个请求(例如,如果您正在使用分页(,则每个请求会向您计费一次。查询的最低费用

即使查询没有返回结果,您执行的每个查询也要至少读取一个文档。

相关内容

  • 没有找到相关文章

最新更新