Catch up on highlights from Firebase at Google I/O 2023. Learn more

Расчеты размера хранилища

На этой странице описывается размер хранилища документов, имена документов, поля и записи индекса в Cloud Firestore.

Вы можете узнать о стоимости этого хранилища в Cloud Firestore Pricing .

Размер строки

Размеры строк рассчитываются как количество байтов в кодировке UTF-8 + 1.

Следующее хранится в виде строк:

  • Идентификаторы коллекций
  • Строковые идентификаторы документов
  • Имена документов
  • Имена полей
  • Строковые значения поля

Например:

  • tasks идентификатора коллекции используют 5 байтов + 1 байт, всего 6 байтов.
  • description имени поля использует 11 байтов + 1 байт, всего 12 байтов.

Размер идентификатора документа

Размер идентификатора документа равен либо размеру строки для строкового идентификатора, либо 8 байтам для целочисленного идентификатора.

Размер имени документа

Размер имени документа является суммой:

  • Размер каждого идентификатора коллекции и идентификатора документа в пути к документу.
  • 16 дополнительных байт

Для документа в подколлекции users/jeff/tasks со строковым идентификатором документа my_task_id размер имени документа составляет 6 + 5 + 6 + 11 + 16 = 44 байта:

  • 6 байтов для идентификатора коллекции users
  • 5 байт для идентификатора документа jeff
  • 6 байт для идентификатора коллекции tasks
  • 11 байт для идентификатора документа my_task_id
  • 16 дополнительных байт

Размер значения поля

В следующей таблице показан размер значений поля по типу.

Тип Размер
Множество Сумма размеров его значений
логический 1 байт
Байты Длина байта
Дата и время 8 байт
Число с плавающей запятой 8 байт
Географическая точка 16 байт
Целое число 8 байт
карта Размер карты, рассчитанный так же, как и размер документа.
Нулевой 1 байт
Ссылка Размер имени документа
Текстовая строка Количество байтов в кодировке UTF-8 + 1

Например, логическое поле с именем done будет занимать 6 байтов:

  • 5 байтов для имени done поля
  • 1 байт для логического значения

Размер документа

Размер документа представляет собой сумму:

Этот пример предназначен для документа в подколлекции users/jeff/tasks со строковым идентификатором документа 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 со строковым идентификатором документа my_task_id :

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

Для индекса с одним полем с областью действия коллекции, которая индексирует поле done , общий размер записи в этом индексе составляет 109 байтов:

  • 44 байта для имени документа users/jeff/tasks/my_task_id
  • 27 байт для имени документа родительского документа users/jeff
  • 5 байтов для имени done поля
  • 1 байт для логического значения поля
  • 32 дополнительных байта

Область действия группы сбора

Размер записи в индексе с одним полем и областью действия группы сбора представляет собой сумму:

Рассмотрим документ в подколлекции users/jeff/tasks со строковым идентификатором документа my_task_id :

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

Для индекса с одним полем с областью действия группы сбора, которая индексирует поле done , общий размер записи в этом индексе составляет 98 байтов:

  • 44 байта для имени документа users/jeff/tasks/my_task_id
  • 5 байтов для имени done поля
  • 1 байт для логического значения поля
  • 48 дополнительных байт

Размер элемента составного индекса

Размер записи в составном индексе зависит от того, относится ли индекс к коллекции или группе коллекций.

Объем коллекции

Размер записи индекса в составном индексе с областью действия коллекции представляет собой сумму:

Рассмотрим документ в подколлекции users/jeff/tasks со строковым идентификатором документа my_task_id :

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

Для составного индекса с областью действия коллекции, которая индексирует поля done и priority (оба по возрастанию), общий размер записи в этом индексе составляет 112 байтов:

  • 44 байта для имени документа users/jeff/tasks/my_task_id
  • 27 байт для имени документа родительского документа users/jeff
  • 1 байт для логического значения поля
  • 8 байт для целочисленного значения поля
  • 32 дополнительных байта

Область действия группы сбора

Размер записи индекса в составном индексе с областью действия группы сбора представляет собой сумму:

Рассмотрим документ в подколлекции users/jeff/tasks со строковым идентификатором документа my_task_id :

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

Для составного индекса с областью действия группы сбора, которая индексирует поля done и priority (оба по возрастанию), общий размер записи индекса в этом индексе составляет 85 байтов:

  • 44 байта для имени документа users/jeff/tasks/my_task_id
  • 1 байт для логического значения поля
  • 8 байт для целочисленного значения поля
  • 32 дополнительных байта

Что дальше

Узнайте о ценах на Cloud Firestore .