Используйте это руководство, чтобы понять ограничения Cloud Firestore , а также ознакомьтесь с ценами Cloud Firestore для полного и подробного объяснения затрат Cloud Firestore , включая моменты, на которые следует обратить внимание.
Контролируйте свое использование
Чтобы отслеживать использование Cloud Firestore , откройте вкладку «Использование Cloud Firestore в консоли Firebase . Используйте панель мониторинга, чтобы оценить свое использование в разные периоды времени.
Подробное использование в консоли Google Cloud
Когда вы создаете проект Firebase, вы также создаете проект Google Cloud . Страницы « Квоты Cloud Firestore API» и «Квоты App Engine в консоли Google Cloud отслеживают использование Cloud Firestore и информацию о квотах.
Бесплатная квота
Cloud Firestore предлагает бесплатную квоту, которая позволяет вам бесплатно начать работу с базой данных (default)
. Сумма бесплатной квоты указана ниже. Если вам нужно больше квоты, вам необходимо включить оплату для вашего проекта Google Cloud .
Квоты применяются ежедневно и сбрасываются около полуночи по тихоокеанскому времени.
Только база данных (default)
соответствует требованиям бесплатной квоты.
Бесплатный уровень | Квота |
---|---|
Сохраненные данные | 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 . Вы можете использовать настройки оповещений по умолчанию или изменить оповещения, чтобы отправлять уведомления в разных процентах от вашего ежемесячного бюджета.
Узнайте больше о настройке бюджетов и оповещений о бюджете .