This page describes the storage size of documents, document names, fields, and index entries in Cloud Firestore .
You can learn about the costs of this storage at Cloud Firestore Pricing .Размер строки
String sizes are calculated as the number of UTF-8 encoded bytes + 1.
Следующие данные хранятся в виде строк:
- Идентификаторы коллекций
- Идентификаторы документов в виде строк
- Названия документов
- Названия полей
- Значения строковых полей
Например:
- The collection ID
tasksuses 5 bytes + 1 byte, for a total of 6 bytes. - The field name
descriptionuses 11 bytes + 1 byte, for a total of 12 bytes.
Размер идентификатора документа
The size of a document ID is either the string size for a string ID or 8 bytes for an integer ID.
Размер названия документа
Размер имени документа равен сумме следующих величин:
- The size of each collection ID and document ID in the path to the document
- 16 дополнительных байтов
For a document in the subcollection users/jeff/tasks with a string document ID of my_task_id , the document name size is 6 + 5 + 6 + 11 + 16 = 44 bytes:
- 6 байт для идентификатора коллекции
users - 5 байт для идентификатора документа
jeff - 6 байт для идентификатора коллекции
tasks - 11 байтов для идентификатора документа
my_task_id - 16 дополнительных байтов
Размер значения поля
The following table shows the size of field values by type.
| Тип | Размер |
|---|---|
| Множество | Сумма размеров его значений |
| Логический | 1 байт |
| Байты | Длина в байтах |
| Дата и время | 8 байт |
| Число с плавающей запятой | 8 байт |
| Географическая точка | 16 байт |
| Целое число | 8 байт |
| Карта | The size of the map, calculated the same way as document size |
| Нулевой | 1 байт |
| Ссылка | Размер имени документа |
| Текстовая строка | Количество байтов, закодированных в UTF-8 + 1 |
| Вектор | 8 байт на измерение |
For example, a boolean field named done would use 6 bytes:
- 5 байт для имени поля
done - 1 байт для логического значения
Размер документа
Размер документа — это сумма следующих величин:
- Размер имени документа
- Сумма размеров строк каждого имени поля
- Сумма размеров значений каждого поля
- 32 дополнительных байта
This example is for a document in subcollection users/jeff/tasks with a string document ID of my_task_id :
- "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Cloud Firestore"
Общий размер полей составляет 71 байт:
| Название поля и значение | Размер поля в байтах |
|---|---|
"type": "Personal" | 14 5 for the field name + 9 for the field's string value |
"done": false | 6 5 for the field name + 1 for the field's boolean value |
"priority": 1 | 17 9 for the field name + 8 for the field's integer value |
"description": "Learn Cloud Firestore" | 34 12 for the field name + 22 for the field's string value |
So the document size is 44 + 71 + 32 = 147 bytes:
- 44 байта для имени документа
- 71 байт для полей
- 32 дополнительных байта
Размер записи в индексе
Index entry sizes are calculated as follows for single-field and composite indexes.
Размер записи в индексе по одному полю
The size of a single-field index entry depends on whether an index is scoped to a collection or a collection group.
Область применения коллекции
The size of an entry in a single-field index with collection scope is the sum of:
- Размер имени документа , проиндексированного документа.
- The document name size of the indexed document's parent document
- Размер строки имени индексированного поля
- Размер значения индексированного поля
- 32 дополнительных байта
Consider a document in the sub-collection users/jeff/tasks with a string document ID of my_task_id :
- "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Cloud Firestore"
For a single-field index with collection scope that indexes the done field, the total size of the entry in this index is 109 bytes:
- 44 bytes for the document name
users/jeff/tasks/my_task_id - 27 bytes for the parent document's document name
users/jeff - 5 байт для имени поля
done - 1 байт для значения логического поля
- 32 дополнительных байта
Область действия группы коллекций
The size of an entry in a single-field index with collection group scope is the sum of:
- Размер имени документа , проиндексированного документа.
- Размер строки имени индексированного поля
- Размер значения индексированного поля
- 48 дополнительных байтов
Consider a document in the sub-collection users/jeff/tasks with a string document ID of my_task_id :
- "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Cloud Firestore"
Для однопольного индекса с областью действия в виде группы коллекций, индексирующего поле done , общий размер записи в этом индексе составляет 98 байт:
- 44 bytes for the document name
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 bytes for the parent document's document name
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 дополнительных байта
размер записи в индексе текстового поиска
Размер записи в текстовом поисковом индексе равен сумме:
- Размер строки названия коллекции
- Размер значения идентификатора документа
- Сумма байтов из значений индексированных полей (x2)
- 48 дополнительных байтов для общих метаданных
Рассмотрим пример события вставки документа с идентификатором my_task_id из коллекции tasks :
Общий размер записи в текстовом поисковом индексе по description составляет 105 байт, исходя из следующих данных:
- 6 байт для
tasksсвязанных с именем коллекции. - 11 байтов для значения идентификатора документа
- 44 байта, исходя из 22 байт для поля
descriptionx2 - 48 дополнительных байтов для общих метаданных
размер записи геопространственного индекса
Размер записи в геопространственном индексе равен сумме следующих величин:
- Размер строки названия коллекции
- Размер значения идентификатора документа
- 128 байт для каждой индексированной точки географического координаты
- 48 дополнительных байтов для общих метаданных
Рассмотрим пример события вставки документа с идентификатором my_place из коллекции places :
{ "type": "Restaurant", "visited": false, "priority": 1, "location": GeoPoint(longitude, latitude) }
Общий размер записи в геопространственном индексе по location составляет 192 байта, исходя из следующих данных:
- 7 байт для
placesв коллекции имен - 9 байт для идентификатора документа
- 128 байт для поля
location - 48 дополнительных байтов для общих метаданных