Используйте это руководство, чтобы понять ограничения Cloud Firestore , и ознакомьтесь с ценами Cloud Firestore для получения полного и подробного объяснения расходов Cloud Firestore , включая моменты, на которые следует обратить внимание.
Контролируйте свое использование
Чтобы отслеживать использование Cloud Firestore , откройте вкладку « Использование Cloud Firestore в консоли Firebase . Используйте панель управления для отслеживания использования за разные периоды времени.
Подробное использование в консоли Google Cloud
Создавая проект Firebase, вы также создаёте проект Google Cloud . Страницы «Квоты API Cloud Firestore и «Квоты App Engine в консоли Google Cloud отслеживают информацию об использовании и квотах Cloud Firestore .
Бесплатная квота
Cloud Firestore предлагает бесплатную квоту, которая позволит вам начать работу без каких-либо затрат. Размеры бесплатной квоты указаны ниже. Если вам нужна дополнительная квота, необходимо включить биллинг для вашего проекта Google Cloud .
Квоты применяются ежедневно и обнуляются около полуночи по тихоокеанскому времени.
Firestore допускает только одну бесплатную базу данных на проект.
Бесплатный уровень | Квота |
---|---|
Сохраненные данные | 1 ГиБ |
Документ гласит: | 50 000 в день |
Документ пишет | 20 000 в день |
Удаление документов | 20 000 в день |
Исходящая передача данных | 10 ГиБ в месяц |
Следующие операции и функции не включают бесплатное использование. Для использования этих функций необходимо включить биллинг:
- TTL удаляет
- Данные ПИТР
- Резервное копирование данных
- Восстановление операций
Дополнительную информацию о порядке выставления счетов за эти функции см. в разделе Цены на хранилище .
Стандартные ограничения
В таблицах ниже показаны ограничения, действующие в Cloud Firestore . Это жёсткие ограничения, если не указано иное.
Базы данных
Предел | Подробности |
---|---|
Максимальное количество баз данных на проект | 100 Вы можете обратиться в службу поддержки , чтобы запросить увеличение этого лимита. |
Коллекции, документы и поля
Предел | Подробности |
---|---|
Ограничения на идентификаторы коллекций |
|
Максимальная глубина подколлекций | 100 |
Ограничения на идентификаторы документов |
|
Максимальный размер имени документа | 6 КБ |
Максимальный размер документа | 1 МиБ (1 048 576 байт) |
Ограничения на имена полей |
|
Максимальный размер имени поля | 1500 байт |
Ограничения на полевые пути |
` ). Например, foo.`x&y` ссылается на поле x&y вложенное в поле foo . Чтобы создать имя поля с символом обратной косой черты, экранируйте его символом обратной косой черты ( \ ). Для удобства можно избежать использования кавычек в именах полей, передав путь к полю как объект FieldPath ( например, см. JavaScript FieldPath ). |
Максимальный размер пути поля | 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 . Вы можете использовать настройки оповещений по умолчанию или настроить их так, чтобы уведомления отправлялись при достижении разных процентов от вашего ежемесячного бюджета.
Узнайте больше о настройке бюджетов и оповещений о бюджете .