【问题标题】:How read count is calculated across different queries with partially same result set?如何跨具有部分相同结果集的不同查询计算读取计数?
【发布时间】:2021-11-29 09:57:11
【问题描述】:

考虑我有一个返回 10 个文档的 Firestore 查询 query1 和另一个返回 15 个文档的查询 query2,但这次在 15 个文档中,有 5 个文档对两者都是通用的query1query2。那么对于第二个查询,在启用持久性的平台中读取计数是 10 还是 15?

【问题讨论】:

标签: firebase google-cloud-firestore


【解决方案1】:

当应用在线时,持久性不会改变任何东西。每个查询账单根据从服务器检索到的文档数量读取。之前查询的文档是否在缓存中并不重要——在线查询的所有结果总是来自服务器。

当应用离线时,查询不会对读取计费,只会从缓存中读取。但您的应用不知道是否是这种情况。

您可以强制查询不对文档读取计费的唯一方法是,如果您指示查询仅使用 source option 以强制查询使用本地缓存,并且根本不咨询服务器。

另请阅读:

【讨论】:

  • 哇,这与我多年来对 Firestore 工作方式的想法完全相反。我曾经认为如果我在执行query1 的30 分钟内调用query2 并且结果集与query1 相同,那么我将不会被收费,因为结果是通过缓存实现的。这不是真的吗?
  • 这不是真的。缓存主要是为了支持应用暂时下线的情况。
  • 我真的很困惑。在另一个相关问题中,您这样回答 - “如果您使用默认的“源”(源选项是“缓存”或“服务器”或“默认”)获取单个文档,那么将首先查询缓存,如果它是新鲜,然后您无需计费即可获得文件。” stackoverflow.com/questions/54191680/…
  • 其他答案不正确。我修好了。
猜你喜欢
  • 2013-08-13
  • 1970-01-01
  • 1970-01-01
  • 2018-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-27
相关资源
最近更新 更多