Воспользуйтесь этим руководством, чтобы понять ограничения 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 .
Квоты устанавливаются ежедневно и обновляются примерно в полночь по тихоокеанскому времени.
В следующей таблице приведены сводные данные о бесплатных квотах:
| Бесплатный уровень | Квота |
|---|---|
| Сохраненные данные | 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 ( например, см. 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 . Вы можете использовать настройки оповещений по умолчанию или изменить настройки оповещений, чтобы отправлять уведомления при достижении различных процентов от вашего ежемесячного бюджета.
Узнайте больше о настройке бюджетов и оповещений о бюджетных изменениях .