本文档介绍 Cloud Firestore 的价格详情。此外还描述了如何限制和监控您在 Cloud Firestore 上的支出。
如果您使用非美元货币付费,请参阅 Cloud Platform SKU 上以您的币种列出的价格。
价格概览
使用 Cloud Firestore 时,您需要为以下各项支付费用:
- 读取、写入和删除的文档数量。
- 聚合查询所匹配的索引条目的数量。对于查询所匹配的每批不超过 1,000 个索引条目,系统都会收取相当于一次文档读取的费用。
- 数据库使用的存储空间容量,包括元数据和索引的开销。
- 网络带宽使用量。
存储空间和带宽使用量是以吉比字节 (GiB) 为单位计算的,其中 1 GiB = 230 个字节。所有费用每天进行累计。
以下部分详细介绍了 Cloud Firestore 用量的收费方式。
不同位置的价格
下表列出了各个 Cloud Firestore 位置的读取、写入、删除和存储操作价格:
选择区域
美国(多区域)
美国(多区域)
超出免费配额部分的价格 | |
---|---|
文档读取 | 每 10 万个文档 $0.06 |
文档写入 | 每 10 万个文档 $0.18 |
文档删除 | 每 10 万个文档 $0.02 |
数据存储 | 每月每 GiB $0.18 |
俄勒冈
俄勒冈
超出免费配额部分的价格 | |
---|---|
文档读取 | 每 10 万个文档 $0.03 |
文档写入 | 每 10 万个文档 $0.09 |
文档删除 | 每 10 万个文档 $0.01 |
数据存储 | 每月每 GiB $0.15 |
洛杉矶
洛杉矶
超出免费配额部分的价格 | |
---|---|
文档读取 | 每 10 万个文档 $0.036 |
文档写入 | 每 10 万个文档 $0.108 |
文档删除 | 每 10 万个文档 $0.012 |
数据存储 | 每月每 GiB $0.108 |
盐湖城
盐湖城
超出免费配额部分的价格 | |
---|---|
文档读取 | 每 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.033 |
文档写入 | 每 10 万个文档 $0.099 |
文档删除 | 每 10 万个文档 $0.011 |
数据存储 | 每月每 GiB $0.165 |
南卡罗来纳
南卡罗来纳
超出免费配额部分的价格 | |
---|---|
文档读取 | 每 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.195 |
法兰克福
法兰克福
超出免费配额部分的价格 | |
---|---|
文档读取 | 每 10 万个文档 $0.039 |
文档写入 | 每 10 万个文档 $0.117 |
文档删除 | 每 10 万个文档 $0.013 |
数据存储 | 每月每 GiB $0.117 |
荷兰
荷兰
超出免费配额部分的价格 | |
---|---|
文档读取 | 每 10 万个文档 $0.034 |
文档写入 | 每 10 万个文档 $0.102 |
文档删除 | 每 10 万个文档 $0.011 |
数据存储 | 每月每 GiB $0.170 |
伦敦
伦敦
超出免费配额部分的价格 | |
---|---|
文档读取 | 每 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.034 |
文档写入 | 每 10 万个文档 $0.103 |
文档删除 | 每 10 万个文档 $0.011 |
数据存储 | 每月每 GiB $0.171 |
香港
香港
超出免费配额部分的价格 | |
---|---|
文档读取 | 每 10 万个文档 $0.06 |
文档写入 | 每 10 万个文档 $0.18 |
文档删除 | 每 10 万个文档 $0.02 |
数据存储 | 每月每 GiB $0.18 |
台湾
台湾
超出免费配额部分的价格 | |
---|---|
文档读取 | 每 10 万个文档 $0.0345 |
文档写入 | 每 10 万个文档 $0.1042 |
文档删除 | 每 10 万个文档 $0.0115 |
数据存储 | 每月每 GiB $0.1725 |
东京
东京
超出免费配额部分的价格 | |
---|---|
文档读取 | 每 10 万个文档 $0.038 |
文档写入 | 每 10 万个文档 $0.115 |
文档删除 | 每 10 万个文档 $0.013 |
数据存储 | 每月每 GiB $0.115 |
新加坡
新加坡
超出免费配额部分的价格 | |
---|---|
文档读取 | 每 10 万个文档 $0.0369 |
文档写入 | 每 10 万个文档 $0.1107 |
文档删除 | 每 10 万个文档 $0.0123 |
数据存储 | 每月每 GiB $0.1846 |
雅加达
雅加达
超出免费配额部分的价格 | |
---|---|
文档读取 | 每 10 万个文档 $0.038 |
文档写入 | 每 10 万个文档 $0.115 |
文档删除 | 每 10 万个文档 $0.013 |
数据存储 | 每月每 GiB $0.192 |
大阪
大阪
超出免费配额部分的价格 | |
---|---|
文档读取 | 每 10 万个文档 $0.038 |
文档写入 | 每 10 万个文档 $0.115 |
文档删除 | 每 10 万个文档 $0.013 |
数据存储 | 每月每 GiB $0.195 |
首尔
首尔
超出免费配额部分的价格 | |
---|---|
文档读取 | 每 10 万个文档 $0.038 |
文档写入 | 每 10 万个文档 $0.115 |
文档删除 | 每 10 万个文档 $0.013 |
数据存储 | 每月每 GiB $0.192 |
如果您使用非美元货币付费,请参阅 Cloud Platform SKU 上以您的币种列出的价格。
读取、写入和删除
您需要为使用 Cloud Firestore 执行的每次文档读取、写入和删除操作支付费用。
写入和删除操作的收费方式简单明了。对于写入操作,每个 set
或 update
操作计为一次写入。
但是读取操作的收费方式有一些您应该注意的细节。以下部分详细介绍了这些细节。
聚合查询
使用 count()
等聚合查询时,对于查询所匹配的每批不超过 1,000 个索引条目,系统都会收取相当于一次文档读取的费用。对于匹配 0 个索引条目的聚合查询,系统会收取相当于一次文档读取的最低费用。
例如,如果 count()
操作匹配 0 至 1,000 个索引条目,则系统会收取相当于一次文档读取的费用;如果 count()
操作匹配 1,500 个索引条目,则系统会收取相当于两次文档读取的费用。
监听查询结果
Cloud Firestore 可让您监听查询结果,并且在查询结果发生更改时获得实时更新。
当您监听查询的结果时,每次结果集内添加或更新了文档,您都需要支付读取费用。当从结果集中移除某个文档时,您同样需要支付读取费用,因为该文档已经发生了更改。(但如果某个文档被删除,您不需要支付读取费用)。
移动 SDK 和 Web SDK 中的监听器的结算还取决于是否启用了离线持久化:
如果启用了离线持久化,则在监听器断开网络连接的时间超过 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 控制台将结算数据导出到文件。
常规网络流量价格
对于源自 Google Cloud Platform(例如,来自在 Google Compute Engine 上运行的应用)的请求,我们按如下标准向您收取费用:
流量类型 | 价格 |
---|---|
入站流量 | 免费 |
一个区域内的出站流量 | 免费 |
同一多区域内不同区域之间的出站流量 | 免费 |
美国境内不同区域之间的出站流量(每 GiB) | $0.01(每个月前 10 GiB 免费) |
不同区域之间的出站流量(不包括美国境内不同区域之间的流量) | Google Cloud Platform 互联网出站流量费率 |
如果您使用非美元货币付费,请参阅 Cloud Platform SKU 上以您的币种列出的价格。
Cloud Firestore 还需要针对以下情况收取额外的互联网出站费用:
- 不同区域之间的 Google Cloud 请求(不包括美国境内不同区域之间的流量)
- 来自 Google Cloud 以外(例如来自用户的移动设备)的请求
查看价格示例
如需了解在实际示例应用中 Cloud Firestore 结算费用如何累计,请参阅 Cloud Firestore 结算示例。
管理支出
为了避免您的账单上出现超支的费用,您可以使用 Google Cloud 的结算控制台设置每月预算和提醒。
如需监控 Cloud Firestore 用量,请打开 Firebase 控制台中的 Cloud Firestore 用量标签页。您可以使用信息中心测量您在不同时间段的用量。