Vai alla console

了解 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
数据存储 每月每 GiB $0.18

洛杉矶

洛杉矶

超出免费配额部分的价格
文档读取 每 10 万个文档 $0.036
文档写入 每 10 万个文档 $0.108
文档删除 每 10 万个文档 $0.012
数据存储 每月每 GiB $0.108

北弗吉尼亚

北弗吉尼亚

超出免费配额部分的价格
文档读取 每 10 万个文档 $0.033
文档写入 每 10 万个文档 $0.099
文档删除 每 10 万个文档 $0.011
数据存储 每月每 GiB $0.099

南卡罗来纳

南卡罗来纳

超出免费配额部分的价格
文档读取 每 10 万个文档 $0.06
文档写入 每 10 万个文档 $0.18
文档删除 每 10 万个文档 $0.02
数据存储 每月每 GiB $0.18

蒙特利尔

蒙特利尔

超出免费配额部分的价格
文档读取 每 10 万个文档 $0.033
文档写入 每 10 万个文档 $0.099
文档删除 每 10 万个文档 $0.011
数据存储 每月每 GiB $0.099

圣保罗

圣保罗

超出免费配额部分的价格
文档读取 每 10 万个文档 $0.045
文档写入 每 10 万个文档 $0.135
文档删除 每 10 万个文档 $0.015
数据存储 每月每 GiB $0.135

欧洲(多区域)

欧洲(多区域)

超出免费配额部分的价格
文档读取 每 10 万个文档 $0.06
文档写入 每 10 万个文档 $0.18
文档删除 每 10 万个文档 $0.02
数据存储 每月每 GiB $0.18

苏黎世

苏黎世

超出免费配额部分的价格
文档读取 每 10 万个文档 $0.042
文档写入 每 10 万个文档 $0.126
文档删除 每 10 万个文档 $0.014
数据存储 每月每 GiB $0.210

法兰克福

法兰克福

超出免费配额部分的价格
文档读取 每 10 万个文档 $0.039
文档写入 每 10 万个文档 $0.117
文档删除 每 10 万个文档 $0.013
数据存储 每月每 GiB $0.117

伦敦

伦敦

超出免费配额部分的价格
文档读取 每 10 万个文档 $0.039
文档写入 每 10 万个文档 $0.117
文档删除 每 10 万个文档 $0.013
数据存储 每月每 GiB $0.117

孟买

孟买

超出免费配额部分的价格
文档读取 每 10 万个文档 $0.035
文档写入 每 10 万个文档 $0.104
文档删除 每 10 万个文档 $0.012
数据存储 每月每 GiB $0.104

悉尼

悉尼

超出免费配额部分的价格
文档读取 每 10 万个文档 $0.038
文档写入 每 10 万个文档 $0.115
文档删除 每 10 万个文档 $0.013
数据存储 每月每 GiB $0.115

香港

香港

超出免费配额部分的价格
文档读取 每 10 万个文档 $0.06
文档写入 每 10 万个文档 $0.18
文档删除 每 10 万个文档 $0.02
数据存储 每月每 GiB $0.18

东京

东京

超出免费配额部分的价格
文档读取 每 10 万个文档 $0.038
文档写入 每 10 万个文档 $0.115
文档删除 每 10 万个文档 $0.013
数据存储 每月每 GiB $0.115

大阪

大阪

超出免费配额部分的价格
文档读取 每 10 万个文档 $0.038
文档写入 每 10 万个文档 $0.115
文档删除 每 10 万个文档 $0.013
数据存储 每月每 GiB $0.195

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

读取、写入和删除

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

写入和删除操作的收费方式简单明了。对于写入操作,每个 setupdate 操作计为一次写入。

但是读取操作的收费方式中有一些您应该注意的细节问题。以下部分将详细介绍这些细节问题。

侦听查询结果

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

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

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

管理大型结果集

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

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

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

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

除文档读取以外的查询

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

查询的最低费用

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

Cloud Firestore 安全规则

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

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

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

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

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

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

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

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

存储空间使用量

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

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

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

网络带宽

您需要为 Cloud Firestore 请求所使用的网络带宽支付费用,如以下部分中所示。Cloud Firestore 请求的网络带宽费用取决于请求的响应大小、您的 Cloud Firestore 数据库的位置和响应的目标位置。

Cloud Firestore 会根据序列化消息格式计算响应大小。协议开销(如 SSL 开销)不计入网络带宽使用量。您的 Cloud Firestore 安全规则拒绝的请求不计入网络带宽使用量。

如需了解您使用了多少网络带宽,您可以使用 GCP Console 将结算数据导出到文件

常规网络流量价格

对于源自 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 互联网出站费率

查看价格示例

如需了解在实际示例应用中 Cloud Firestore 结算费用如何累计,请参阅 Cloud Firestore 结算示例

管理支出

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

如需监控 Cloud Firestore 使用量,请在 Firebase 控制台中打开 Cloud Firestore 使用量标签页。您可以使用信息中心测量您在不同时间段的使用量。