На этой странице описан размер хранилища документов, имена документов, поля и записи индекса в Cloud Firestore .
О стоимости этого хранилища можно узнать в разделе «Цены на Cloud Firestore .Размер строки
Размер строк рассчитывается как количество байтов, закодированных в 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 |
| Вектор | 8 байт на измерение |
Например, логическое поле с именем done будет занимать 6 байтов:
- 5 байт для имени поля
done - 1 байт для логического значения
Размер документа
Размер документа — это сумма следующих величин:
- Размер имени документа
- Сумма размеров строк каждого имени поля
- Сумма размеров значений каждого поля
- 32 дополнительных байта
Этот пример относится к документу из подколлекции 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 дополнительных байта
Размер записи в индексе
Размеры позиций в индексе рассчитываются следующим образом для однопольных и составных индексов.
Размер записи в индексе по одному полю
Размер записи в индексе, содержащем одно поле, зависит от того, относится ли индекс к коллекции или к группе коллекций.
Область применения коллекции
Размер записи в однопольном индексе с областью видимости коллекции равен сумме:
- Размер имени документа , проиндексированного документа.
- Размер имени документа родительского документа индексируемого документа.
- Размер строки имени индексированного поля
- Размер значения индексированного поля
- 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 дополнительных байта
Область действия группы коллекций
Размер записи в однопольном индексе с областью видимости группы коллекций равен сумме:
- Размер имени документа , проиндексированного документа.
- Размер строки имени индексированного поля
- Размер значения индексированного поля
- 48 дополнительных байтов
Рассмотрим документ в подколлекции 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 дополнительных байтов
Размер записи в составном индексе
Размер записи в составном индексе зависит от того, относится ли индекс к коллекции или к группе коллекций.
Область применения коллекции
Размер записи в составном индексе с областью охвата коллекции равен сумме:
- Размер имени документа , проиндексированного документа.
- Размер имени документа родительского документа индексируемого документа.
- Сумма значений индексированных полей
- 32 дополнительных байта
Рассмотрим документ в подколлекции 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 дополнительных байта
Область действия группы коллекций
Размер записи в составном индексе с областью охвата группы коллекций равен сумме:
- Размер имени документа , проиндексированного документа.
- Сумма значений индексированных полей
- 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 дополнительных байта