本文档介绍 Firestore 标准版的价格详情。如需了解企业版价格,请参阅 Firestore 企业版价格。
如果您使用非美元货币付费,请参阅 Cloud Platform SKU 上以您的币种列出的价格。
使用 Firestore 时,您需要为以下各项支付费用:
存储空间和带宽使用量是以吉比字节 (GiB) 为单位计算的,其中 1 GiB = 230 个字节。所有费用每天进行累计。
以下部分详细介绍了 Firestore 使用量的收费方式。
Firestore 提供了一定的免费配额,让您可以零成本开始使用。免费配额数量如下所示。如果您需要更多配额,则必须为 Google Cloud 项目启用结算功能。
配额按日计算,并会在美国太平洋时间零点重置。
Firestore 每个项目仅允许一个免费数据库。
免费层级 | 配额 |
---|---|
数据存储 | 1 GiB |
文档读取 | 每天 50000 次 |
文档写入 | 每天 20000 次 |
文档删除 | 每天 20000 次 |
出站数据传输 | 每月 10 GiB |
下表列出了各个 Firestore 位置的读取、写入、删除和存储操作价格:
每天的免费配额 | 默认*(美元) | 收费单位 | |
---|---|---|---|
文档读取 | 5 万 | US$0.03 | 每 10 万个文档 |
文档写入次数 | 20,000 | US$0.09 | 每 10 万个文档 |
文档删除 | 20,000 | US$0.01 | 每 10 万个文档 |
TTL 删除 | 不支持 | US$0.01 | 每 10 万个文档 |
存储的数据 | 1 GiB 存储空间 | US$0.00020548 | GiB |
PITR 数据 | 不支持 | US$0.00020548 | GiB |
备份数据 | 不支持 | US$0.0000411 | GiB |
恢复操作 | 不支持 | US$0.20 | GiB |
*价格反映的是超出免费配额部分的价格(每单位)。
如果您使用非美元货币付费,请参阅 Cloud Platform SKU 上以您的币种列出的价格。
如需创建命名(非默认)数据库,您必须启用结算功能。
创建或删除命名数据库不会产生额外费用,但这些数据库不符合免费配额的条件。相反,您需要为这些命名数据库产生的用量付费。
您需要支付为满足查询要求而产生的文档和索引条目读取费用。您需要为执行的每次文档写入和删除操作支付费用。
写入和删除操作的收费方式简单明了。对于写入操作,每个 set 或 update 操作计为一次写入。
但是读取操作的收费方式有一些您应该注意的细节。以下部分将详细介绍这些细节问题。
对于查询所读取的每批不超过 1,000 个索引条目,系统都会收取相当于一次读取操作的费用,但以下情况除外:
注意:您可以使用 Firestore 查询解释 来确认某项查询是否会收取索引条目读取费用。
例如,如果下面具有 limit: 5 限制的向量搜索查询返回了 5 个文档并读取了 1,550 个 kNN 向量索引条目,则您需要为返回的文档支付 5 次读取操作的费用并为读取的索引条目支付 16 次读取操作的费用:
例如,下面的查询包含一个等式字段 (age) 和一个范围字段 (start_date),该查询就不会产生索引条目读取费用:
例如,下面的查询包含一个等式字段 (age) 和一个范围字段 (start_date),该查询就不会产生索引条目读取费用:
下面的查询包含两个范围字段(age 和 start_date),该查询就会产生索引条目读取费用:
如果查询中至少有一个其他范围字段,“排序依据”子句中的字段便会被视为是范围字段。因此,下面的查询包含两个范围字段(age 和 start_date),且该查询会产生索引条目读取费用:
__name__ 字段始终会被视为是范围字段,即使该字段仅用在等式过滤条件中也是如此。因此,下面的查询包含两个范围字段(age 和 __name__),且该查询会产生索引条目读取费用:
对于 聚合查询(例如 count()、sum() 和 avg()),您需要按上述规定为查询支付索引条目读取费用。对于读取 0 个索引条目的聚合查询,系统会收取相当于一次文档读取的最低费用。
例如,如果 count() 操作读取 0 至 1, 000 个索引条目,则系统会收取相当于一次文档读取的费用。对于读取 1, 500 个索引条目的 count() 操作,系统会收取相当于两次文档读取的费用。
您可以使用查询解释详细了解所用索引和所读取的索引条目。
Firestore 可让您监听查询结果,并在查询结果发生更改时获得实时更新。
当您监听查询的结果时,每次结果集内添加或更新了文档,您都需要支付读取费用。当某个文档从结果集中移除时,您同样需要支付读取费用,因为该文档已经发生了更改。(但如果某个文档被删除,您不需要支付读取费用)。
移动 SDK 和 Web SDK 中的监听器的结算还取决于是否启用了离线持久化:
注意:不超过一个范围字段的查询不会产生索引条目读取费用。如需了解详情,请参阅此处。
Firestore 有几项功能可以帮助您管理会返回大量结果的查询:
使用游标、页面标记和限制时没有额外的费用。不仅如此,由于这些功能只读取您实际需要的文档,因此还可以帮助您节省费用。
但是,当您发送包含偏移的查询时,对于每个跳过的文档,您仍需要支付读取费用。例如,如果您的查询使用的偏移为 10,并且该查询返回 1 个文档,则您一共需要支付 11 次读取操作的费用。由于存在这笔额外费用,因此您应该尽可能使用游标,而不是偏移。
对于文档读取以外的其他查询,例如请求一个集合 ID 列表,您需要支付一次文档读取的费用。如果获取完整的结果集需要发出多个请求(例如,如果您使用了分页功能),则每个请求都会单独计费。
对于您执行的每一次查询,系统都会收取相当于一次文档读取的最低费用,即使查询没有返回任何结果也是如此。
对于移动和 Web 客户端库,如果您的 Firestore 安全规则 使用 exists()、get() 或 getAfter() 从数据库中读取一个或多个文档,那么您需要支付如下额外读取费用:
您需要为您在 Firestore 中存储的数据量支付费用,包括相关存储开销。存储开销包括元数据、自动索引和复合索引。
Firestore 中存储的每个文档都需要以下元数据:
存储费用以 GiB/月为单位,每天计算一次。Firestore 每天都会测量数据库大小。在一个月内,系统会计算这些样本点的平均值,以计算数据库存储空间大小。此平均值乘以存储空间(GiB-月)的单价
如需了解如何计算 Firestore 的存储空间使用量,请参阅存储空间大小的计算。
如果启用 PITR,您需要支付 PITR 数据的存储费用。大多数客户会发现 PiTR 数据存储的总费用与数据库的存储费用类似。
注意:PITR 数据费用与数据库存储空间大小费用分开结算。PITR 数据不会影响您的数据存储大小费用。
PITR 的存储费用以 GiB/月为单位,每天计算一次。Firestore 每天都会测量数据库大小。在一个月内,系统会计算这些样本点的平均值,以计算数据库存储空间大小。此平均值乘以 PITR(GiB-月)的单价。
例如,如果数据库一个月的平均大小为 1 GiB,并且整个月都启用了 PITR,则计费 PITR 数据大小也是 1 GiB。
最低结算费用:即使您在启用后 1 天内停用了 PITR,系统也可能会向您收取最多 1 天的 PITR 存储费用。
如果启用了备份功能,则需要支付数据库备份的存储费用。备份的存储空间大小与进行备份时数据库的存储空间大小相同。
备份的存储费用以 GiB/月为单位。在一个月内,系统会计算每个备份的保留天数,还会计算一个月内的平均值。备份费用的计算方法是:备份的存储空间大小乘以备份保留月份的比例,再乘以单价。系统按 America/Los_Angeles 时区来定义日期边界以用于结算。
当您执行恢复操作时,Firestore 会衡量恢复操作的备份大小。备份的大小乘以恢复操作 (GiB) 的单价。
使用 Firestore 查询解释 会产生费用。
如果您在使用查询解释时选择的是默认选项,系统不会执行任何索引读取操作。无论查询复杂程度如何,都只会收取一次读取操作的费用。
如果您在使用查询解释时选择的是分析选项,系统会相应执行索引和读取操作,因此您需要照常为查询付费。解释和分析活动不会产生额外费用,只会收取执行查询的常规费用。
您需要为 Firestore 请求所使用的网络带宽支付费用,如以下部分中所示。Firestore 请求的网络带宽费用取决于请求的响应大小、您的 Firestore 数据库的位置和响应的目标位置。
Firestore 会根据序列化消息格式计算响应大小。协议开销(如 SSL 开销)不计入网络带宽使用量。Firestore 安全规则拒绝的请求不计入网络带宽使用量。
如需了解您使用了多少网络带宽,可以使用 Google Cloud 控制台将结算数据导出为文件。
对于源自 Google Cloud Platform(例如,来自在 Google Compute Engine 上运行的应用)的请求,我们按如下标准向您收取费用:
流量类型 | 价格 |
---|---|
入站数据传输 | 免费 |
区域内的数据传输 | 免费 |
同一多区域内不同区域之间的数据传输 | 免费 |
美国境内不同区域之间的数据传输(每 GiB) | $0.01(每个月前 10 GiB 免费) |
不同区域之间的数据传输(不包括美国境内不同区域之间的流量) |
如果您使用非美元货币付费,请参阅 Cloud Platform SKU 上以您的币种列出的价格。
您需要支付以下互联网数据传输费用:
网络出站数据传输:全球目的地(不包括除香港外的中国其他地方和澳大利亚)(每 GiB)
服务 | 价格 (USD) |
---|---|
亚太地区、欧洲、美洲 | 0 gibibyte to 10 gibibyte US$0.00 (Free) 10 gibibyte to 1,024 gibibyte US$0.12 1,024 gibibyte to 10,240 gibibyte US$0.11 10,240 gibibyte and above US$0.08 |
新加坡、东京 | 0 gibibyte to 10 gibibyte US$0.00 (Free) 10 gibibyte to 1,024 gibibyte US$0.14 1,024 gibibyte to 10,240 gibibyte US$0.13 10,240 gibibyte and above US$0.09 |
如果您使用非美元货币付费,请参阅 Cloud Platform SKU 上以您的币种列出的价格。
价格 (USD) | |
---|---|
网络出站数据传输:中国目的地(不包括香港)(每 GiB) | 0 gibibyte to 10 gibibyte US$0.00 (Free) 10 gibibyte to 1,024 gibibyte US$0.23 1,024 gibibyte to 10,240 gibibyte US$0.22 10,240 gibibyte and above US$0.20 |
网络出站数据传输:澳大利亚目的地(每 GiB) | 0 gibibyte to 10 gibibyte US$0.00 (Free) 10 gibibyte to 1,024 gibibyte US$0.19 1,024 gibibyte to 10,240 gibibyte US$0.18 10,240 gibibyte and above US$0.15 |
网络入站数据传输 | $0(免费) |
如果您使用非美元货币付费,请参阅 Cloud Platform SKU 上以您的币种列出的价格。
如需了解如何监控 Firestore 使用情况,请参阅监控使用情况。
如需管理支出,请设置每月预算和提醒。
Google Cloud 允许您为所有 Google Cloud 服务设置每月预算。您可以使用每月预算来监控 Google Cloud 的总体费用,包括 Firestore 的网络带宽费用。设置预算后,您可以设置提醒,以便在费用接近预算时收到电子邮件通知。
重要提示:即使您已超出每月 Google Cloud 预算,对 Firestore 及其他 Google Cloud 服务提交的请求也会成功。您应自行负责更改使用方式,以确保费用不超出 Google Cloud 预算。
请按照这些说明在 Google Cloud 控制台中设置每月预算并创建提醒。
如需了解在实际示例应用中 Firestore 结算费用如何累计,请参阅 Firestore 结算示例。