Cloud Firestore 定价

本文档将介绍 Cloud Firestore 定价详情。此外还会告诉您如何限制和监控您在 Cloud Firestore 上的支出。

如果您使用非美元货币支付,则请参阅在 Cloud Platform SKU 上以您的币种列出的价格。

定价概览

使用 Cloud Firestore 时,您需要为以下各项支付费用:

  • 您执行的读取、写入和删除操作的次数
  • 您的数据库的存储空间使用量,包括元数据和索引的开销。
  • 您的网络带宽使用量

存储空间和带宽使用量是以千兆字节 (GiB) 为单位计算的,其中 1 GiB = 230 字节。所有费用每天进行累计。

以下部分详细介绍了您的 Cloud Firestore 使用量的收费方式。

读取、写入和删除

您需要为使用 Cloud Firestore 执行的每次文档读取、写入和删除操作支付费用:

多区域 超出免费配额部分的价格
文档读取 每 10 万个文档 $0.06
文档写入 每 10 万个文档 $0.18
文档删除 每 10 万个文档 $0.02
如果您使用非美元货币支付,则请参阅在 Cloud Platform SKU 上以您的币种列出的价格。

写入和删除操作的收费方式简单明了。但是读取操作的收费方式中有一些您应该注意的细节问题。以下部分将详细介绍这些细节问题。

侦听查询结果

Cloud Firestore 可让您侦听查询结果,并且在查询结果发生更改时获得实时更新。

当您侦听查询的结果时,每当结果集内添加或更新了文档时,您都需要支付读取费用。而当某个文档被从结果集中移除时,您同样需要支付读取费用,这是因为该文档已经发生了更改(但当文档被删除时,您不需要支付读取费用)。

另外,如果侦听器断开网络连接的时间超过 30 分钟(例如,如果用户离线了),您也需要支付读取费用,就好像您发出了一次全新的查询一样。

管理大型结果集

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

  • 游标:可让您继续执行某个运行时间较长的查询。
  • 页面标记:帮助您对查询结果进行分页。
  • 限额:指定要检索多少条结果。
  • 偏移:可让您跳过一定数量的文档。

使用游标、页面标记和限额时没有额外的费用。实际上,这些功能只读取您实际需要的文档,因此还可以帮助您节省资金。

但是,当您发送包含偏移的查询时,对于每个跳过的文档,您仍需要支付读取费用。例如,如果您的查询使用的偏移为 10,并且该查询返回 1 个文档,则您一共需要支付 11 次读取操作的费用。由于存在这笔额外费用,因此您应该尽可能使用游标,而不是偏移。

除文档读取以外的查询

对于除文档读取以外的其他查询,例如请求一个集合 ID 列表,您需要支付一次文档读取的费用。如果获取完整的结果集需要发出多个请求(例如,如果您使用了分页功能),则每个请求都会单独计费。

查询的最低费用

即使查询没有返回任何结果,对于您执行的每个查询,系统都会收取相当于一次文档读取的最低费用。

Cloud Firestore 安全规则

对于移动和网页客户端库,如果您的 Cloud Firestore 安全规则使用 exists()get()getAfter() 从数据库中读取一个或多个文档,那么您需要支付如下额外读取费用:

  • 您需要为评估您的 Cloud Firestore 安全规则所需的读取操作支付费用。

    例如,如果您的规则引用了三个文档,但 Cloud Firestore 只需要读取其中两个文档来评估您的规则,那么您将需要为相关文档的两次额外读取操作支付费用。

    即使您的规则不止一次地引用某个文档,对于该文档您也只需要支付一次读取操作的费用。

  • 您只需为每个请求支付一次规则评估费用。

    因此,一次读取多个文档比分别读取各个文档(每次只读取一个文档)的费用更少,原因是一次读取多个文档需要的请求数更少。

  • 当您侦听查询的结果时,在下列所有情况中您都需要支付规则评估费用:

    • 当您发出查询时。
    • 每当查询结果发生更新时。
    • 每当用户的设备离线然后又重新连线时。
    • 每当您更新自己的规则时。
    • 每当您更新规则中的相关文档时。

存储空间使用量

您需要为您在 Cloud Firestore 中存储的数据量支付费用,包括存储开销。存储开销包括元数据、自动索引和复合索引。Cloud Firestore 中存储的每个文档都需要以下元数据:

  • 文档 ID,包括集合 ID 和文档名称。
  • 每个字段的名称和值。由于 Cloud Firestore 是无架构的,因此文档中每个字段的名称必须与字段值一起存储。
  • 引用了该文档的任何单字段索引和复合索引。每个索引条目都包含集合 ID、任意数量的字段值(具体取决于索引定义)以及文档名称。

如需了解如何计算 Cloud Firestore 的存储空间使用量,请参阅存储空间使用量的计算。您可以通过访问 API 控制台中的 App Engine 配额详细信息页面来查看您数据库的存储空间使用量。

多区域 超出免费配额部分的价格
数据存储 每月每 GiB $0.18
如果您使用非美元货币支付,则请参阅在 Cloud Platform SKU 上以您的币种列出的价格。

网络带宽

您需要为 Cloud Firestore 请求所使用的网络带宽支付费用,如以下部分中所示。要了解您使用了多少网络带宽,您可以使用 API 控制台将结算数据导出到文件

常规网络流量价格

对于源自 Google Cloud Platform(例如,来自在 Google Compute Engine 上运行的应用)的请求,我们按如下标准向您收取费用:

流量类型 价格
入站流量 免费
一个区域内的出站流量 免费
同一多区域内不同区域之间的出站流量 免费
美国境内不同区域之间的出站流量(每 GiB) $0.01(每个月前 10 GiB 免费)
不同区域之间的出站流量,不包括美国境内不同区域之间的流量 Google Cloud Platform 互联网出站费率

如果您使用非美元货币支付,则请参阅在 Cloud Platform SKU 上以您的币种列出的价格。

Cloud Firestore 还需要针对以下情况收取额外的互联网出站费用:

  • 不同区域之间的 Google Cloud Platform 请求,不包括美国境内不同区域之间的流量
  • 来自 Google Cloud Platform 以外(例如来自用户的移动设备)的请求

请参阅 Google Cloud Platform 互联网出站费率

查看价格示例

假设您在 30 天结算周期内的使用情况如下:

  • 美国境内数据存储空间的平均使用量为 100 GiB
  • 1 亿次文档读取操作
  • 5 千万次文档写入操作
  • 5 百万次文档删除操作

您在该结算周期内的 Cloud Firestore 帐单明细如下。结算周期内使用的其他任何 Cloud Platform 服务(例如 Compute Engine 实例)均需额外计费。

数据存储

  • 免费配额:1 GiB
  • 额外的数据:$0.18 * 99 GiB = $17.82

文档读取操作

  • 免费配额:每天 50000 次操作 * 30 天 = 1500000 次操作
  • 额外的操作次数:$0.06 * (98500000 / 100000) = $59.10

文档写入操作

  • 免费配额:每天 20000 次操作 * 30 天 = 600000 次操作
  • 额外的操作次数:$0.18 * (49400000 / 100000) = $88.92

文档删除操作

  • 免费配额:每天 20000 次操作 * 30 天 = 600000 次操作
  • 额外的操作次数:$0.02 * (4400000 / 100000) = $0.88

每月费用总计

在本示例中,Cloud Firestore 的总帐单费用为 $166.72。

管理支出

为了避免您的帐单上出现超支的费用,您可以使用 Google App Engine 来设置每日支出限额,或使用 Google Cloud Platform 的结算控制台来设置每月预算和提醒

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面