Firestore 不对无结果查询收费:未记录的行为?

问题描述 投票:0回答:1

我一直在测试来自 Unity 的 Firestore 查询,并注意到对于不返回结果的查询的收费,记录的行为和观察到的行为之间存在差异。

根据 Firestore 文档:

对于您执行的每个查询,读取一份文档的最低费用是收费的,即使查询没有返回结果也是如此。

我注意到情况并非总是如此,为了确认这一点,我做了一些测试:

  • 运行 6 个无结果查询和 1 个返回单个文档的查询。这些是我经常运行的查询。
  • 我等了 30 分钟:Firestore 或 Google Cloud 使用面板中只反映了 1 次读取。
  • 我使用一个新的、之前从未运行过的无结果查询进行了后续测试,以检查 Firestore 是否正在服务器端进行一些缓存,并且仅在第一次运行没有结果的查询时收取读取费用。但又等了30分钟后,使用面板也显示0读取。

根据这些测试,我的结论是:

  • 未返回结果的查询不会反映在“使用情况”面板中(不会因读取一份文档而收费),至少在接下来的 30 分钟内不会。
  • 只有返回文档的查询才算作读取。
  • 即使对于无法在服务器端缓存的首次查询,此行为也会持续存在。

这是未记录的行为还是我遗漏了什么?还有其他人观察到类似的结果吗?任何见解或解释将不胜感激。

注意:我是从 Unity 编辑器 (Windows PC) 查询。 Unity SDK 不允许设置源选项。我的理解是,这使用了 Firestore 的默认行为:尝试从数据库获取最新的文档快照,仅在网络不可用或请求超时时才使用离线缓存。

database firebase google-cloud-firestore billing unity3d-editor
1个回答
0
投票

这是我自己问题的答案https://cloud.google.com/firestore/docs/monitor-usage#usage_dashboard_and_billing_reports

Firebase 和 Cloud 控制台中的 Firestore 使用情况仪表板 提供使用情况的估计。它们可以帮助您识别峰值 用法。但是,仪表板并不是计费的精确视图 运营。计费使用量可能会更高。在所有情况下 差异,计费报告优先于使用情况 仪表板。

导致使用情况仪表板和仪表板之间存在差异的操作 计费使用情况包括:

  • 返回零结果的查询。 查询 结果为零会导致一次读取操作的成本。这个用法是 已计费但不会出现在使用情况仪表板中。
© www.soinside.com 2019 - 2024. All rights reserved.