配额和限制
本页介绍 Firestore 的请求配额和限制。
免费配额
Firestore 提供了一定的免费配额,让您可以免费开始使用 (default)
数据库。免费配额数量如下所示。
如果您需要更多配额,则必须为 Google Cloud 项目启用结算功能。
配额按日计算,并会在美国太平洋时间零点重置。
只有 (default)
数据库有资格使用免费配额。
免费层级 | 配额 |
---|---|
数据存储 | 1 GiB |
文档读取 | 每天 50000 次 |
文档写入 | 每天 20000 次 |
文档删除 | 每天 20000 次 |
出站数据传输 | 每月 10 GiB |
以下操作和功能不包括免费使用量。您必须启用结算功能才能使用这些功能:
- 使用命名(非默认)数据库
- TTL 删除
- PITR 数据
- 备份数据
- 恢复操作
如需详细了解这些功能的结算方式,请参阅存储价格。
标准限制
下表显示了适用于 Firestore 的限制。除非另有说明,否则这些属于硬性限额。
数据库
限制 | 详细信息 |
---|---|
每个项目的数据库数上限 |
100 您可以与支持团队联系,申请提高此限制。 |
集合、文档和字段
限制 | 详细信息 |
---|---|
对于集合 ID 的限制 |
|
子集合的最大深度 | 100 |
对于文档 ID 的限制 |
|
文档名称的大小上限 | 6 KiB |
文档的大小上限 | 1 MiB(1048576 字节) |
对于字段名称的限制 |
|
字段名称的大小上限 | 1500 字节 |
对于字段路径的限制 |
` ) 开头和结尾。例如,foo.`x&y` 是指嵌套在 foo 字段下的 x&y 字段。要使用反引号字符构造字段名称,请使用反斜杠字符 (\ ) 转义反引号字符。为方便起见,您可以将字段路径作为 FieldPath 对象进行传递以避免使用引号的字段名称(如需查看示例,请参阅 JavaScript FieldPath)。 |
字段路径的大小上限 | 1500 字节 |
字段值的大小上限 | 1 MiB - 89 字节(1048487 字节) |
映射或数组中字段的最大深度 | 20 映射和数组字段会向对象的总深度额外添加一层深度。例如,以下对象的总深度为三层:
|
写入和事务
除了这些限制之外,您还应该参阅规模化设计最佳实践。
限制 | 详细信息 |
---|---|
API 请求的大小上限 | 10 MiB |
事务的时间限制 | 270 秒,并具有 60 秒的空闲到期时间 |
在一项 Commit 操作或一项事务中,可以对单个文档执行的字段转换操作最大数量 |
500 |
索引
本页介绍了 Firestore 的请求配额和限制。
限制 | 详细信息 |
---|---|
一个数据库的复合索引数量上限 |
|
数据库单字段配置的数量上限 |
一个字段级配置可以包含同一字段的多个配置。例如,单字段索引例外项和针对同一字段的 TTL 政策将被视为一个字段配置计入限额。 |
每个文档的索引条目数量上限 |
40000 索引条目的数量是文档的以下各项数量的总和:
如需了解 Firestore 如何将一个文档和一组索引转变为索引条目,请参阅此索引条目计数示例。 |
复合索引中的字段数上限 | 100 |
索引条目的大小上限 |
7.5 KiB 如需了解 Firestore 如何计算索引条目大小,请参阅索引条目大小。 |
一个文档的索引条目的大小总和上限 |
8 MiB 总大小是文档的以下各项的大小总和: |
编入索引的字段值的大小上限 |
1500 字节 超出 1500 字节的字段值会被截断。包含被截断的字段值的查询可能会返回不一致的结果。 |
存留时间 (TTL)
限制 | 详情 |
---|---|
数据库单字段配置的数量上限 |
一个字段级配置可以包含同一字段的多个配置。例如,单字段索引例外项和针对同一字段的 TTL 政策将被视为一个字段配置计入限额。 |
导出/导入
以下限制适用于代管式导入和导出操作:
限制 | 详细信息 |
---|---|
一个项目每分钟允许的导出和导入请求总数上限 | 20 |
并发导出和导入的数量上限 | 50 |
导出和导入请求的集合 ID 过滤条件的数量上限 | 100 |
安全规则
限制 | 详细信息 |
---|---|
每个请求调用 exists() 、get() 、getAfter() 的最大次数 |
超过任一限制都会导致权限被拒绝的错误。 某些文档访问调用可能会被缓存,缓存的调用不会计入限额。 |
嵌套 match 语句深度上限 |
10 |
在路径段中,可在一组嵌套 match 语句中使用的路径长度上限 |
100 |
可在一组嵌套 match 语句中使用的路径捕获变量数上限 |
20 |
函数调用深度上限 | 20 |
函数参数的数量上限 | 7 |
每个函数的 let 变量绑定数上限 |
10 |
递归或循环函数调用次数上限 | 0(不允许) |
每个请求中评估的表达式数量上限 | 1000 |
规则集的大小上限 | 规则集必须符合以下两种大小限制:
|
监控使用情况
您可以在 Cloud Firestore API 配额和 App Engine 配额页面中查看 Firestore 用量。