了解结算报告
本页提供了一些提示和资源,可帮助您了解 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 操作的另一个来源考虑在内。在结算报告中,您无法区分控制台流量和应用流量。
对来源计费的操作
除了价格信息之外,请检查您的应用是否存在以下可能导致结算费用增长速度超出预期的操作:
实时更新
当您监听查询的结果时,每次结果集中添加或更新了文档,您都需要支付读取费用。当某个文档从结果集中移除时,您同样需要支付读取费用,因为该文档已经发生了更改。(但如果某个文档被删除,您不需要支付读取费用)。
查看实时监听器的范围。监听范围非常广泛的查询的结果或监听整个集合可能会导致读取操作超出所需数量。
免运维的写入和删除操作
无操作是指不会导致任何文档发生更改的操作。您仍需为无操作写入和删除操作支付费用。
对于删除操作,即使给定文档不存在,您也需要支付费用。
对于写入操作,即使操作没有任何更改,您仍需支付相应费用。例如,将文档字段更新为相同字段值的操作会产生费用。
查询偏移
使用情况信息中心差异
Firebase 和 Cloud Console 中的 Firestore 使用量信息中心提供了估算的使用量。您可以借助这些信息确定使用量高峰。不过,信息中心内显示的计费操作信息并不准确。计费使用量可能更高。如果出现任何差异,请优先参考结算报告,而不是使用量信息中心。
导致用量信息中心与计费的使用量之间产生差异的操作包括:
- 导入和导出操作。这些操作执行的读写操作不会显示在使用量信息中心内。
- 免运维的仅验证写入操作。此类写入仅验证文档存在与否对计费读取操作产生影响,但它们在写入用量信息中心内会分别显示为“UPDATE_NOOP”和“DELETE_NOOP”。
- 无运维写入。此类操作不会导致数据库更改,例如,不更改字段值的更新或对已删除文档执行的写入可能会在用量信息中心内显示为“UPDATE_NOOP”或“DELETE_NOOP”。虽然它们显示为“NOOP”,但仍计入计费操作。
收拢的写入操作。如果快速连续对同一文档执行多次写入操作,使用量信息中心可能会将多项写入操作收拢在一起,并将其计为 1 次。对使用量计费时,系统仍会单独计入每次写入操作。
使用量信息中心也针对服务器时间戳、数字增量和数组联合操作等字段转换收拢写入操作。对于字段转换,使用量信息中心可能会将多项操作计为一次操作。
- 未返回结果的查询。未返回的查询会产生一次读取操作的费用。此用量会被计费,而不会在用量信息中心内显示。
- 从已读取的索引条目中读取操作。此用量会被计费,而不会在用量信息中心内显示。例如,聚合查询会针对已读取的索引条目进行结算,但此用量不会显示在用量信息中心内。
后续步骤
如需有关结算报告的更多帮助,请与 Cloud Billing 支持团队联系。