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

存储大小计算

本页面介绍 Cloud Firestore 中文档的存储大小、文档名称、字段和索引条目。

您可以在Cloud Firestore 定价中了解此存储的成本。

字符串大小

字符串大小计算为UTF-8 编码字节数 + 1。

以下内容存储为字符串:

  • 集合 ID
  • 字符串文档 ID
  • 文档名称
  • 字段名称
  • 字符串字段值

例如:

  • 集合 ID tasks使用 5 个字节 + 1 个字节,总共 6 个字节。
  • 字段名description使用11字节+1字节,共12字节。

文档 ID 大小

文档 ID 的大小是字符串 ID 的字符串大小或整数 ID 的 8 字节。

文档名称大小

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

  • 文档路径中每个集合ID和文档ID的大小
  • 16 个附加字节

对于子集合users/jeff/tasks中字符串文档 ID 为my_task_id的文档,文档名称大小为 6 + 5 + 6 + 11 + 16 = 44 字节:

  • 6 个字节用于users集合 ID
  • 5 个字节用于jeff文档 ID
  • 6 个字节用于tasks集合 ID
  • 11 个字节用于my_task_id文档 ID
  • 16 个附加字节

字段值大小

下表按类型显示字段值的大小。

类型尺寸
大批其值大小的总和
布尔值1字节
字节字节长度
日期和时间8字节
浮点数8字节
地理位置16字节
整数8字节
地图地图的大小,计算方式与文档大小相同
无效的1字节
参考文档名称大小
文本字符串UTF-8 编码字节数 + 1

例如,名为done的布尔字段将使用 6 个字节:

  • done字段名称的 5 个字节
  • 1 个字节用于布尔值

文档尺寸

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

此示例适用于子集合users/jeff/tasks中的文档,其字符串文档 ID 为my_task_id

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

字段的总大小为 71 字节:

字段名称和值字段大小(以字节为单位)
"type": "Personal" 14
5 为字段名 + 9 为字段的字符串值
"done": false 6个
5 为字段名 + 1 为字段的布尔值
"priority": 1 17
9 为字段名 + 8 为字段的整数值
"description": "Learn Cloud Firestore" 34
12 为字段名 + 22 为字段的字符串值

所以文档大小是 44 + 71 + 32 = 147 字节:

  • 文档名称 44 个字节
  • 字段 71 个字节
  • 32 个附加字节

索引条目大小

对于单字段索引和复合索引,索引条目大小的计算方式如下。

单字段索引条目大小

单字段索引条目的大小取决于索引的范围是集合还是集合组。

收集范围

具有集合范围的单字段索引中条目的大小是以下各项的总和:

考虑子集合users/jeff/tasks中的文档,其字符串文档 ID 为my_task_id

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

对于索引done字段的集合范围的单字段索引,该索引中条目的总大小为 109 字节:

  • 文档名称users/jeff/tasks/my_task_id的 44 个字节
  • 父文档的文档名称users/jeff的 27 个字节
  • done字段名称的 5 个字节
  • 1 个字节用于布尔字段值
  • 32 个附加字节

集合组范围

具有集合组范围的单字段索引中条目的大小是以下各项的总和:

考虑子集合users/jeff/tasks中的文档,其字符串文档 ID 为my_task_id

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

对于索引done字段的集合组范围的单字段索引,该索引中条目的总大小为 98 字节:

  • 文档名称users/jeff/tasks/my_task_id的 44 个字节
  • done字段名称的 5 个字节
  • 1 个字节用于布尔字段值
  • 48 个附加字节

复合索引条目大小

复合索引中条目的大小取决于索引的范围是集合还是集合组。

收集范围

具有集合范围的复合索引中索引条目的大小是以下各项的总和:

考虑子集合users/jeff/tasks中的文档,其字符串文档 ID 为my_task_id

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

对于具有索引donepriority字段(均升序)的集合范围的复合索引,该索引中条目的总大小为 112 字节:

  • 文档名称users/jeff/tasks/my_task_id的 44 个字节
  • 父文档的文档名称users/jeff的 27 个字节
  • 1 个字节用于布尔字段值
  • 8 个字节用于整数字段值
  • 32 个附加字节

集合组范围

具有集合组范围的复合索引中索引条目的大小是以下各项的总和:

考虑子集合users/jeff/tasks中的文档,其字符串文档 ID 为my_task_id

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

对于一个集合组作用域为donepriority字段(均为升序)的复合索引,该索引中索引条目的总大小为 85 字节:

  • 文档名称users/jeff/tasks/my_task_id的 44 个字节
  • 1 个字节用于布尔字段值
  • 8 个字节用于整数字段值
  • 32 个附加字节

下一步是什么

了解Cloud Firestore 定价