Используйте это руководство, чтобы понять ограничения Cloud Firestore , а также ознакомьтесь с ценами Cloud Firestore для получения полного и подробного объяснения расходов Cloud Firestore , включая моменты, на которые следует обратить внимание.
Контролируйте свое использование
Чтобы контролировать использование Cloud Firestore , откройте вкладку Cloud Firestore Usage в консоли Firebase . Используйте панель управления для измерения использования в различные периоды времени.
Подробное использование в консоли Google Cloud
Когда вы создаете проект Firebase, вы также создаете проект Google Cloud . Страницы Cloud Firestore API Quotas и App Engine Quotas в консоли 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 Поля Map и array добавляют один уровень к общей глубине объекта. Например, следующий объект имеет общую глубину в три уровня:
|
Записи и транзакции
В дополнение к этим ограничениям вам также следует ознакомиться с лучшими практиками проектирования с учетом масштаба .
Предел | Подробности |
---|---|
Максимальный размер запроса 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 . Бюджеты не будут ограничивать ваше использование, но вы можете настроить оповещения, которые будут уведомлять вас, когда вы приближаетесь к запланированным расходам на месяц или превышаете их.
Чтобы задать бюджет, перейдите в раздел Billing в консоли Google Cloud и создайте бюджет для своего аккаунта Cloud Billing . Вы можете использовать настройки оповещений по умолчанию или изменить оповещения для отправки уведомлений при разных процентах от вашего ежемесячного бюджета.
Узнайте больше о настройке бюджетов и оповещений о бюджете .