获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

使用和限制

使用本指南了解 Cloud Firestore 限制,并查看Cloud Firestore 定价以了解 Cloud Firestore 成本的完整、详细说明,包括需要注意的事项。

监控您的使用情况

要监控您的 Cloud Firestore 使用情况,请在 Firebase 控制台中打开 Cloud Firestore使用选项卡。使用仪表板来衡量您在不同时间段内的使用情况。

Google Cloud Console 中的详细使用

当您创建一个 Firebase 项目时,您也在创建一个 Google Cloud 项目。 Google Cloud Console 中的Cloud Firestore API 配额App Engine 配额页面跟踪 Cloud Firestore 使用情况和配额信息。

免费名额

Cloud Firestore 提供免费配额,让您可以免费开始使用。免费配额金额如下所列。如果您需要更多配额,则必须为您的 Cloud Platform 项目启用计费

配额每天应用并在太平洋时间午夜左右重置。

免费套餐配额
存储数据1 GiB
文档读取每天 50,000
文档写入每天 20,000 个
文档删除每天 20,000 个
网络出口每月 10 GiB

标准限制

下表显示了适用于 Cloud Firestore 的限制。除非另有说明,否则这些都是硬性限制。

集合、文档和字段

限制细节
集合 ID 的约束
  • 必须是有效的 UTF-8 字符
  • 不得超过 1,500 字节
  • 不能包含正斜杠 ( / )
  • 不能仅由单句点 ( . ) 或双句点 ( .. ) 组成
  • 无法匹配正则表达式__.*__
子集合的最大深度100
文档 ID 的约束
  • 必须是有效的 UTF-8 字符
  • 不得超过 1,500 字节
  • 不能包含正斜杠 ( / )
  • 不能仅由单句点 ( . ) 或双句点 ( .. ) 组成
  • 无法匹配正则表达式__.*__
  • 如果您将 Datastore 实体导入 Firestore 数据库,数字实体 ID 将公开为__id[0-9]+__
文档名称的最大大小6 KB
文档的最大大小1 MiB(1,048,576 字节)
字段名称的约束必须是有效的 UTF-8 字符
字段名称的最大大小1,500 字节
字段路径的约束
  • 必须用单个句点 ( . ) 分隔字段名称
  • 当路径中的所有字段名称都很简单时,可以作为字符串传递,否则必须作为 FieldPath 对象传递(例如 JavaScript FieldPath
一个简单的字段名称是满足以下所有条件的名称:
  • 仅包含字符azAZ0-9和下划线 ( _ )
  • 不以0-9开头
字段路径的最大大小1,500 字节
字段值的最大大小1 MiB - 89 字节(1,048,487 字节)
地图或阵列中的最大景深20

写入和事务

除了这些限制之外,您还应该了解规模化设计的最佳实践

限制细节
最大 API 请求大小10 字节
可以传递给Commit操作或在事务中执行的最大写入数500
Commit操作或事务中可以对单个文档执行的最大字段转换数500
交易时限270 秒,空闲到期时间为 60 秒

软限制

Cloud Firestore 不会阻止您超过以下阈值,但这样做会影响性能。

软限制细节
文档在索引字段中包含顺序值的集合的最大写入速率每秒 500 个

索引

以下限制适用于单字段索引复合索引

限制细节
一个数据库的最大复合索引数

200

您可以联系支持人员请求增加此限制。

一个数据库的最大单字段配置数

200

总共允许 200 个字段级配置。一个字段配置可以包含同一字段的多个配置。例如,单字段索引豁免和同一字段上的 TTL 策略计为一个字段配置,以达到限制。

每个文档的最大索引条目数

40,000

索引条目数是文档的以下各项的总和:

  • 单字段索引条目数
  • 复合索引条目数

要了解 Cloud Firestore 如何将文档和一组索引转换为索引条目,请参阅此索引条目计数示例

复合索引中的最大字段数100
索引条目的最大大小

7.5 KB

要查看 Cloud Firestore 如何计算索引条目大小,请参阅索引条目大小

文档索引条目大小的最大总和

8 字节

文档的总大小是以下各项的总和:

  • 文档的单个字段索引条目的大小总和
  • 文档的复合索引条目的大小总和
  • 索引字段值的最大大小

    1500 字节

    超过 1500 字节的字段值将被截断。涉及截断字段值的查询可能会返回不一致的结果。

    生存时间 (TTL)

    限制细节
    一个数据库的最大单字段配置数

    200

    总共允许 200 个字段级配置。一个字段配置可以包含同一字段的多个配置。例如,单字段索引豁免和同一字段上的 TTL 策略计为一个字段配置,以达到限制。

    出口进口

    以下限制适用于受管理的进出口业务

    限制细节
    每分钟允许的项目导出和导入请求的最大总数20
    并发导出和导入的最大数量50
    导出和导入请求的集合 ID 过滤器的最大数量100

    安全规则

    限制细节
    每个请求的exists()get()getAfter()调用的最大次数
    • 10 用于单文档请求和查询请求。
    • 20 用于多文档读取、事务和批量写入。之前的 10 个限制也适用于每个操作。

      例如,假设您创建了一个包含 3 个写入操作的批处理写入请求,并且您的安全规则使用 2 个文档访问调用来验证每个写入。在这种情况下,每个写入使用其 10 个访问调用中的 2 个,而批处理的写入请求使用其 20 个访问调用中的 6 个。

    超过任一限制都会导致权限被拒绝错误。

    某些文档访问调用可能会被缓存,缓存的调用不计入限制。

    最大嵌套match语句深度10
    一组嵌套match语句中允许的最大路径长度(以路径段为单位) 100
    一组嵌套match语句中允许的最大路径捕获变量数20
    最大函数调用深度20
    函数参数的最大数量7
    每个函数的最大let变量绑定数10
    递归或循环函数调用的最大次数0(不允许)
    每个请求评估的最大表达式数1,000
    规则集的最大大小规则集必须遵守两个大小限制:
    • 从 Firebase 控制台或使用firebase deploy从 CLI 发布的规则集文本源的大小限制为 256 KB。
    • 当 Firebase 处理源代码并使其在后端处于活动状态时,编译规则集的大小限制为 250 KB。

    管理开支

    为帮助避免账单上的意外费用,请设置每月预算和提醒。

    设定每月预算

    要跟踪您的 Cloud Firestore 成本,请在 Google Cloud Console 中创建每月预算。预算不会限制您的使用,但您可以设置警报,以便在您接近或超过当月的计划成本时通知您。

    要设置预算,请转到 Google Cloud Console 中的Billing部分并为您的 Cloud Billing 帐户创建预算。您可以使用默认警报设置或修改警报以按每月预算的不同百分比发送通知。

    了解有关设置预算和预算提醒的更多信息。

    设定每日消费限额

    要限制您的 Cloud Firestore 使用量,请通过 App Engine 设置每日支出限额。 App Engine 允许您为 App Engine 相关资源(包括 Cloud Firestore)设置每日支出限额。 App Engine 限制不适用于任何其他 Firebase 产品。