В этом руководстве рассказывается о лимитах Cloud Firestore. Полную информацию о ценах на Cloud Firestore, в том числе о том, на что следует обратить внимание, вы найдете в статье Цены на Cloud Firestore.
Отслеживайте использование
Чтобы отслеживать использование Cloud Firestore в консоли Firebase, перейдите в раздел Databases & Storage (Базы данных и хранилище) > Firestore > вкладка Usage (Использование). На этой панели можно посмотреть данные об использовании за разные периоды времени.
Подробные сведения об использовании в консоли Google Cloud
При создании проекта Firebase вы также создаете проект Google Cloud. На страницах Cloud Firestore API Quotas (Квоты API ) и App Engine Quotas (Квоты ) в консоли Google Cloud можно отслеживать использование Cloud Firestore и информацию о квотах.
Бесплатная квота
Cloud Firestore предлагает бесплатную квоту, которая позволяет начать работу без затрат. Если вам нужна более высокая квота, включите оплату для проекта Google Cloud.
Квоты применяются ежедневно и сбрасываются около полуночи по тихоокеанскому времени.
В таблице ниже приведены бесплатные квоты.
| Бесплатный план | Квота |
|---|---|
| Хранящиеся данные | 1 ГиБ |
| Документ прочитан | 50 000 в день |
| Записи документов | 20 000 в день |
| Удаление документов | 20 000 в день |
| Передача исходящих данных | 10 ГиБ в месяц |
Для перечисленных ниже операций и функций бесплатное использование не предусмотрено. Чтобы использовать эти функции, необходимо включить платежный аккаунт:
- Удаления TTL
- Данные PITR
- Резервное копирование данных
- Операции восстановления
- Операции клонирования
Подробнее о том, как оплачиваются эти функции…
Стандартные ограничения
В таблицах ниже приведены ограничения, действующие для Cloud Firestore. Если не указано иное, это жесткие ограничения.
Базы данных
| Ограничение | Сведения |
|---|---|
| Максимальное количество баз данных в проекте |
100 Чтобы увеличить лимит, обратитесь в службу поддержки. |
| Максимальное количество баз данных с ключами шифрования, управляемыми клиентом (CMEK), на проект |
0 По умолчанию квота равна 0, поскольку эта функция доступна только пользователям из белого списка. Чтобы запросить увеличение квоты, заполните форму запроса доступа к CMEK. |
Коллекции, документы и поля
| Ограничение | Сведения |
|---|---|
| Ограничения на идентификаторы коллекций |
|
| Максимальная глубина вложенности подколлекций | 100 |
| Ограничения для идентификаторов документов |
|
| Максимальный размер названия документа | 6 КиБ |
| Максимальный размер документа | 1 МиБ (1 048 576 байт) |
| Ограничения на названия полей |
|
| Максимальный размер названия поля | 1500 байт |
| Ограничения на пути полей |
`). Например, foo.`x&y` относится к полю x&y, вложенному в поле foo. Чтобы создать название поля с обратным апострофом, экранируйте его обратной косой чертой (\). Чтобы не использовать названия полей в кавычках, можно передать путь к полю как объект FieldPath (например, FieldPath в JavaScript).
|
| Максимальный размер пути к полю | 1500 байт |
| Максимальный размер значения поля | 1 МиБ – 89 байт (1 048 487 байт) |
| Максимальная глубина полей на карте или в массиве | 20 Поля карт и массивов добавляют один уровень к общей глубине объекта. Например, у следующего объекта глубина вложенности равна трем: |
Записи и транзакции
Помимо этих ограничений, ознакомьтесь с рекомендациями по проектированию для масштабирования.
| Ограничение | Сведения |
|---|---|
| Максимальный размер запроса к API | 10 МиБ |
| Ограничение по времени для транзакции | 270 секунд, а время ожидания – 60 секунд. |
Максимальное количество преобразований полей, которые можно выполнить в одном документе за одну операцию Commit или транзакцию. |
500 |
Индексы
Для индексов по одному полю и составных индексов действуют следующие ограничения:
| Ограничение | Сведения |
|---|---|
| Максимальное количество составных индексов для базы данных |
|
| Максимальное количество конфигураций для одного поля в базе данных |
Одна конфигурация на уровне поля может содержать несколько конфигураций для одного и того же поля. Например, исключение из индексирования одного поля и правило TTL для того же поля считаются одной конфигурацией поля. |
|
Максимальное количество записей индекса для каждого документа |
40 000 Количество записей в индексе для документа – это сумма следующих значений:
Чтобы узнать, как Cloud Firestore преобразует документ и набор индексов в записи индекса, ознакомьтесь с этим примером подсчета записей индекса. |
| Максимальное количество полей в составном индексе | 100 |
| Максимальный размер записи в индексе |
7,5 КиБ Чтобы узнать, как Cloud Firestore рассчитывает размер записи индекса, ознакомьтесь с разделом Размер записи индекса. |
| Максимальная сумма размеров записей индекса документа |
8 МиБ Общий размер документа складывается из следующих значений: |
| Максимальный размер значения индексированного поля |
1500 байт Значения полей, превышающие 1500 байт, усекаются. Запросы, содержащие усеченные значения полей, могут возвращать противоречивые результаты. |
Время жизни (TTL)
| Ограничение | Сведения |
|---|---|
| Максимальное количество конфигураций для одного поля в базе данных |
Одна конфигурация на уровне поля может содержать несколько конфигураций для одного и того же поля. Например, исключение из индексирования одного поля и правило TTL для того же поля считаются одной конфигурацией поля. |
Экспорт/импорт
Для управляемых операций импорта и экспорта действуют следующие ограничения:
| Ограничение | Сведения |
|---|---|
| Максимальное общее количество запросов на экспорт и импорт для проекта в минуту | 20 |
| Максимальное количество одновременных операций экспорта и импорта | 50 |
| Максимальное количество фильтров по идентификатору коллекции для запросов на экспорт и импорт | 100 |
Правила безопасности
| Ограничение | Сведения |
|---|---|
Максимальное количество вызовов exists(), get() и getAfter() на запрос |
При превышении любого из этих ограничений возникает ошибка "Доступ запрещен". Некоторые вызовы доступа к документам могут кешироваться и не учитываться в лимитах. |
Максимальная глубина вложенности оператора match |
10 |
Максимальная длина пути (в сегментах), допустимая в наборе вложенных операторов match. |
100 |
Максимальное количество переменных для захвата пути в наборе вложенных операторов match |
20 |
| Максимальная глубина вызова функции | 20 |
| Максимальное количество аргументов функции | 7 |
Максимальное количество привязок переменных let на функцию |
10 |
| Максимальное количество рекурсивных или циклических вызовов функций | 0 (не разрешено) |
| Максимальное количество выражений, оцениваемых за один запрос | 1000 |
| Максимальный размер набора правил | Для наборов правил действуют два ограничения по размеру:
|
Управление расходами
Чтобы избежать непредвиденных расходов, настройте ежемесячные бюджеты и оповещения.
Установите месячный бюджет
Чтобы отслеживать расходы на Cloud Firestore, создайте месячный бюджет в консоли Google Cloud. Бюджеты не ограничивают использование, но вы можете настроить оповещения, которые будут уведомлять вас, когда вы приближаетесь к запланированным расходам за месяц или превышаете их.
Чтобы задать бюджет, перейдите в раздел Оплата в консоли Google Cloud и создайте бюджет для аккаунта Cloud Billing. Вы можете использовать настройки оповещений по умолчанию или изменить их, чтобы получать уведомления при достижении других пороговых значений вашего месячного бюджета.
Подробнее о том, как настроить бюджеты и оповещения о них…