了解结算报告
本页提供了一些提示和资源,可帮助您了解 Firestore 结算报告。本页面介绍了以下常见的结算问题来源:
- 在应用使用之外,费用来源包括导入操作、导出操作和控制台使用。
- 在您的应用中,实时更新、无操作写入和查询偏移可能会使您的使用量上升幅度超出预期。
- 在控制台中使用用量信息中心时,请注意信息中心与结算报告之间的差异。
导入和导出用量
细分结算报告时,请务必查看与导入和导出操作相关的费用。这些操作执行读写操作,这些读写操作会计入您的 Firestore 费用。这些操作可能会构成重要的计费操作来源,具体取决于您导入和导出数据的频率。
请注意,控制台中的用量信息中心不会反映导入和导出操作的读取和写入。您可以通过以下方式查看导入/导出操作和相关费用:
结算标签
导出和导入操作会为读写操作添加 goog-firestoremanaged:exportimport
标签。在 Cloud Billing 报告页面中,您可以使用此标签查看与导入和导出操作相关的费用:
列出近期操作
您可以使用控制台或 gcloud
查看最近的导入和导出操作。
Google Cloud 控制台
您可以在 Google Cloud 控制台的 Firestore 导入/导出页面中查看最近的导出和导入操作列表。
gcloud
使用 operations list
命令可查看所有正在运行和最近完成的导出和导入操作:
gcloud firestore operations list
管理操作的审核日志
Firestore 会针对导出操作、导入操作和索引操作写入审核日志,请参阅 Firestore 审核日志记录信息。
控制台用量
Firebase 控制台和 Cloud 控制台中的 Firestore 数据查看器执行的读取操作会计入您的计费 Firestore 使用量。当您打开或刷新 Firestore 页面时,控制台会加载文档以填充该页面。只要 Firestore 页面保持打开状态,控制台就会使用实时查询来更新可见文档和集合。
在细分用量时,请将控制台用量视为 Firestore 操作的另一个来源。在您的结算报告中,无法区分控制台流量与应用流量。
计费操作
除了价格信息之外,还请检查您的应用是否存在以下可能导致结算费用上涨的速度高于预期的操作:
实时更新
当您监听查询结果时,每当结果集中添加或更新某个文档时,您都需要支付读取费用。当从结果集中移除某个文档时,您同样需要支付读取费用,因为该文档已经发生了更改。(但如果某个文档被删除,您不需要支付读取费用)。
查看实时监听器的范围。监听非常宽泛的查询结果或监听整个集合都可能会导致读取操作数量超出预期。
免操作写入和免操作删除
空操作是指不更改任何文档的操作。但您仍需要支付无操作写入和删除操作的费用。
对于删除操作,即使给定文档不存在,您也会产生费用。
对于写入操作,如果操作没有发生任何变化,您仍会产生费用。例如,将文档字段更新为同一字段值的操作会产生费用。
查询偏移量
查询偏移会跳过指定数量的查询结果,但跳过的结果仍会计入结算费用。由于存在这种额外的开销,您应该使用cursors来代替偏移。
用量信息中心差异
Firebase 和 Cloud Console 中的 Firestore 使用量信息中心提供了估算的使用量。您可以借助这些信息确定使用量高峰。不过,信息中心内显示的计费操作信息并不准确。计费用量可能更高。如果出现任何差异,请优先参考结算报告,而不是用量信息中心。
导致用量信息中心与计费的使用量之间产生差异的操作包括:
- 导入和导出操作。这些操作执行的读写操作不会显示在用量信息中心内。
- 免运维的仅验证写入操作。此类写入仅验证文档存在与否对计费读取操作产生影响,但它们在写入用量信息中心内会分别显示为“UPDATE_NOOP”和“DELETE_NOOP”。
- 免运维的写入操作。此类操作不会导致数据库更改,例如,不更改字段值的更新或对已删除文档执行的写入可能会在用量信息中心内显示为“UPDATE_NOOP”或“DELETE_NOOP”。虽然它们显示为“NOOP”,但仍计入计费操作。
收拢的写入操作。如果快速连续对同一文档执行多次写入操作,用量信息中心可能会将多项写入操作收拢在一起,并将其计为 1 次。对用量计费时,系统仍会单独计入每次写入操作。
用量信息中心也针对服务器时间戳、数字增量和数组联合操作等字段转换收拢写入操作。对于字段转换,用量信息中心可能会将多项操作计为一次操作。
- 未返回结果的查询。未返回结果的查询会产生一次读取操作的费用。此用量会被计费,而不会在用量信息中心内显示。
- 与汇总查询(如 COUNT)关联的读取操作。此用量会被计费,而不会在用量信息中心内显示。
后续步骤
如需结算报告方面的更多帮助,请与 Cloud Billing 支持团队联系。