Catch up on highlights from Firebase at Google I/O 2023. Learn more

Использование и ограничения

Используйте это руководство, чтобы понять ограничения Cloud Firestore, и ознакомьтесь с ценами на Cloud Firestore , чтобы получить полное и подробное объяснение затрат на Cloud Firestore, включая то, на что следует обратить внимание.

Отслеживайте использование

Чтобы отслеживать использование Cloud Firestore, откройте вкладку «Использование Cloud Firestore» в консоли Firebase. Используйте панель управления, чтобы оценить использование за разные периоды времени.

Подробное использование в Google Cloud Console

Когда вы создаете проект Firebase, вы также создаете проект Google Cloud. Страницы Cloud Firestore API Quotas и App Engine Quotas в Google Cloud Console отслеживают использование Cloud Firestore и информацию о квотах.

Бесплатная квота

Cloud Firestore предлагает бесплатную квоту, которая позволяет вам начать работу бесплатно. Ниже перечислены бесплатные квоты. Если вам нужно больше квоты, вы должны включить выставление счетов для своего проекта Cloud Platform .

Квоты применяются ежедневно и сбрасываются около полуночи по тихоокеанскому времени.

Бесплатный уровень квота
Сохраненные данные 1 ГиБ
Документ читает 50 000 в день
Документ пишет 20 000 в день
Документ удаляет 20 000 в день
Сетевой выход 10 ГиБ в месяц

Стандартные лимиты

В следующих таблицах показаны ограничения, применимые к Cloud Firestore. Это жесткие ограничения, если не указано иное.

Коллекции, документы и поля

Ограничение Подробности
Ограничения на идентификаторы коллекций
  • Должны быть допустимые символы UTF-8.
  • Должен быть не длиннее 1500 байт.
  • Не может содержать косую черту ( / )
  • Не может состоять только из одной точки ( . ) или двух точек ( .. )
  • Не удается сопоставить регулярное выражение __.*__
Максимальная глубина подколлекций 100
Ограничения на идентификаторы документов
  • Должны быть допустимые символы UTF-8.
  • Должен быть не длиннее 1500 байт.
  • Не может содержать косую черту ( / )
  • Не может состоять только из одной точки ( . ) или двух точек ( .. )
  • Не удается сопоставить регулярное выражение __.*__
  • Если вы импортируете объекты хранилища данных в базу данных Firestore, числовые идентификаторы объектов отображаются как __id[0-9]+__
Максимальный размер имени документа 6 КиБ
Максимальный размер документа 1 МБ (1 048 576 байт)
Ограничения на имена полей Должны быть допустимые символы UTF-8.
Максимальный размер имени поля 1500 байт
Ограничения на пути поля
  • Имена полей должны разделяться одной точкой ( . )
  • Может передаваться как строка, если все имена полей в пути простые, в противном случае должен передаваться как объект FieldPath ( например, JavaScript FieldPath )
Простое имя поля — это имя, в котором выполняются все следующие условия:
  • Содержит только символы az , AZ , 0-9 и подчеркивание ( _ ).
  • Не начинается с 0-9
Максимальный размер пути к полю 1500 байт
Максимальный размер значения поля 1 МБ — 89 байт (1 048 487 байт)
Максимальная глубина полей в карте или массиве 20

Записи и транзакции

В дополнение к этим ограничениям вы также должны ознакомиться с рекомендациями по проектированию с учетом масштаба .

Ограничение Подробности
Максимальный размер запроса API 10 МБ
Максимальное количество преобразований полей, которое может быть выполнено в одном документе в операции Commit или в транзакции. 500
Ограничение времени на транзакцию 270 секунд, с 60-секундным временем простоя

Мягкие ограничения

Cloud Firestore не мешает вам превышать указанные ниже пороговые значения, но это влияет на производительность.

Мягкий лимит Подробности
Максимальная скорость записи в коллекцию, в которой документы содержат последовательные значения в индексированном поле 500 в секунду

Индексы

К индексам с одним полем и составным индексам применяются следующие ограничения:

Ограничение Подробности
Максимальное количество составных индексов для базы данных

200

Вы можете обратиться в службу поддержки , чтобы запросить увеличение этого лимита.

Максимальное количество конфигураций с одним полем для базы данных

200

Всего разрешено 200 конфигураций уровня поля. Одна конфигурация поля может содержать несколько конфигураций для одного и того же поля. Например, исключение индексации одного поля и политика TTL для одного и того же поля учитываются как одна конфигурация поля для ограничения.

Максимальное количество записей указателя для каждого документа

40 000

Количество элементов указателя представляет собой сумму следующих значений для документа:

  • Количество записей индекса с одним полем
  • Количество записей составного индекса

Чтобы увидеть, как Cloud Firestore превращает документ и набор индексов в записи индекса, см . этот пример подсчета записей индекса .

Максимальное количество полей в составном индексе 100
Максимальный размер записи индекса

7,5 КиБ

Чтобы узнать, как Cloud Firestore вычисляет размер элемента индекса, см. Размер элемента индекса .

Максимальная сумма размеров записей указателя документа

8 МБ

Общий размер представляет собой сумму следующих значений для документа:

  • Сумма размеров записей индекса с одним полем документа.
  • Сумма размеров элементов составного индекса документа
  • Максимальный размер значения индексированного поля

    1500 байт

    Значения полей более 1500 байт обрезаются. Запросы, включающие усеченные значения полей, могут возвращать противоречивые результаты.

    Срок жизни (TTL)

    Ограничение Подробности
    Максимальное количество конфигураций с одним полем для базы данных

    200

    Всего разрешено 200 конфигураций уровня поля. Одна конфигурация поля может содержать несколько конфигураций для одного и того же поля. Например, исключение индексации одного поля и политика TTL для одного и того же поля учитываются как одна конфигурация поля для ограничения.

    Вывоз ввоз

    Следующие ограничения применяются к управляемым операциям импорта и экспорта :

    Ограничение Подробности
    Максимальное общее количество запросов на экспорт и импорт для проекта, разрешенное в минуту 20
    Максимальное количество одновременных экспортов и импортов 50
    Максимальное количество фильтров ID коллекции для запросов на экспорт и импорт 100

    Правила безопасности

    Ограничение Подробности
    Максимальное количество вызовов exists() , get() и getAfter() на запрос
    • 10 для запросов отдельных документов и запросов запросов.
    • 20 для чтения нескольких документов, транзакций и пакетной записи. Предыдущее ограничение в 10 также применяется к каждой операции.

      Например, представьте, что вы создаете пакетный запрос на запись с 3 операциями записи и что ваши правила безопасности используют 2 вызова доступа к документу для проверки каждой записи. В этом случае каждая запись использует 2 из 10 вызовов доступа, а пакетный запрос на запись использует 6 из 20 вызовов доступа.

    Превышение любого ограничения приводит к ошибке отказа в разрешении.

    Некоторые вызовы доступа к документам могут кэшироваться, а кэшированные вызовы не учитываются при расчете ограничений.

    Максимальная глубина вложенного оператора match 10
    Максимальная длина пути в сегментах пути, допустимая в наборе вложенных match сопоставления. 100
    Максимальное количество переменных захвата пути, разрешенное в наборе вложенных match сопоставления 20
    Максимальная глубина вызова функции 20
    Максимальное количество аргументов функции 7
    Максимальное количество привязок переменной let на функцию 10
    Максимальное количество рекурсивных или циклических вызовов функций 0 (не разрешено)
    Максимальное количество выражений, оцениваемых на запрос 1000
    Максимальный размер набора правил Наборы правил должны соответствовать двум ограничениям размера:
    • ограничение в 256 КБ на размер исходного текста набора правил, опубликованного из консоли Firebase или из интерфейса командной строки с помощью firebase deploy .
    • ограничение в 250 КБ на размер скомпилированного набора правил, которое возникает, когда Firebase обрабатывает исходный код и делает его активным на серверной части.

    Управляйте расходами

    Чтобы избежать непредвиденных расходов на ваш счет, установите ежемесячные бюджеты и оповещения.

    Установить месячный бюджет

    Чтобы отслеживать расходы на Cloud Firestore, создайте ежемесячный бюджет в Google Cloud Console. Бюджеты не будут ограничивать ваше использование, но вы можете настроить оповещения, чтобы уведомлять вас, когда вы приближаетесь к запланированным расходам на месяц или превышаете их.

    Чтобы установить бюджет, перейдите в раздел «Оплата» в Google Cloud Console и создайте бюджет для своей учетной записи Cloud Billing. Вы можете использовать настройки предупреждений по умолчанию или изменить предупреждения, чтобы отправлять уведомления в разных процентах от вашего ежемесячного бюджета.

    Узнайте больше о настройке бюджетов и предупреждений о бюджете .

    Установить дневной лимит расходов

    Чтобы ограничить использование Cloud Firestore, установите дневной лимит расходов через App Engine. App Engine позволяет установить дневной лимит расходов на ресурсы, связанные с App Engine, включая Cloud Firestore. Ограничение App Engine не распространяется на другие продукты Firebase.