| Относится только к версии Cloud Firestore Enterprise. |
На этой странице описывается, как создавать, обновлять и удалять базы данных Cloud Firestore, совместимые с MongoDB. Вы можете создать несколько баз данных Cloud Firestore для каждого проекта. Вы можете использовать несколько баз данных для настройки производственных и тестовых сред, изоляции данных клиентов и регионализации данных.
Использование бесплатного уровня
Cloud Firestore предлагает бесплатный уровень , который позволит вам приступить к работе без каких-либо затрат.
Уровень бесплатного пользования применяется только к одной базе данных Cloud Firestore в каждом проекте. Уровень бесплатного пользования будет предоставлен первой базе данных, созданной в проекте без уровня бесплатного пользования. Если база данных с применённым уровнем бесплатного пользования будет удалена, уровень бесплатного пользования будет предоставлен следующей созданной базе данных.
Прежде чем начать
Перед созданием базы данных необходимо выполнить следующие действия:
Если вы еще этого не сделали, создайте проект Firebase: в консоли Firebase нажмите «Добавить проект» , затем следуйте инструкциям на экране, чтобы создать проект Firebase или добавить службы Firebase в существующий проект Google Cloud .
- Назначьте соответствующие роли управления идентификацией и доступом, как описано в следующем разделе.
Требуемые роли
Для создания и управления базами данных вам потребуется роль Owner или Datastore Owner в системе управления удостоверениями и доступом. Эти роли предоставляют необходимые разрешения.
Требуемые разрешения
Для управления базами данных вам необходимы следующие разрешения:
- Создать базу данных:
datastore.databases.create - Чтение конфигурации базы данных:
datastore.databases.getMetadata - Настройте базу данных:
datastore.databases.update - Удалить базу данных:
datastore.databases.delete - Клонировать базу данных:
datastore.databases.clone
Создать базу данных
Чтобы создать облачное хранилище Firestore с базой данных, совместимой с MongoDB, используйте один из следующих методов:
Консоль Firebase
В консоли Firebase перейдите на страницу базы данных Firestore .
- Нажмите Создать базу данных .
- Выберите версию Enterprise . Нажмите «Далее» .
- Введите идентификатор базы данных.
- Выберите место для вашей базы данных.
- Настройте базу данных, выбрав режим.
- Нажмите «Создать» .
Firebase CLI
firebase firestore:databases:create --edition EDITION DATABASE_ID \ --location=LOCATION
gcloud CLI
Используйте команду gcloud firestore databases create и установите --edition=enterprise .
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise
Заменить следующее:
- DATABASE_ID : действительный идентификатор базы данных .
- LOCATION : имя облачного Firestore с поддержкой MongoDB (мультирегион или регион) .
Чтобы включить защиту от удаления, добавьте флаг --delete-protection . Вы не сможете удалить базу данных с включённой защитой от удаления, пока не отключите этот параметр. По умолчанию этот параметр отключён.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise \ --delete-protection
Чтобы добавить теги в базу данных, используйте флаг --tags . Например:
-
--tags=123/environment=production,123/costCenter=marketing -
--tags=tagKeys/333=tagValues/444
Терраформировать
Используйте ресурс google_firestore_database и установите database_edition на ENTERPRISE
resource "google_firestore_database" "database" { name = "DATABASE_ID" location_id = "LOCATION" type = "FIRESTORE_NATIVE" database_edition = "ENTERPRISE" // Optional delete_protection_state = "DELETE_PROTECTION_STATE" }
Заменить следующее:
- DATABASE_ID : действительный идентификатор базы данных .
- LOCATION : имя облачного Firestore с поддержкой MongoDB (мультирегион или регион) .
- DELETE_PROTECTION_ENABLEMENT :
DELETE_PROTECTION_ENABLEDилиDELETE_PROTECTION_DISABLED.
Чтобы включить защиту от удаления, установите для delete_protection_state значение DELETE_PROTECTION_ENABLED . Вы не сможете удалить базу данных с включённой защитой от удаления, пока не отключите этот параметр. По умолчанию этот параметр отключён.
Идентификатор базы данных
Допустимые идентификаторы базы данных включают идентификаторы, соответствующие следующим условиям:
- Содержит только буквы, цифры и дефисы (
-). - Буквы должны быть строчными.
- Первый символ должен быть буквой.
- Последний символ должен быть буквой или цифрой.
- Минимум 4 символа.
- Максимум 63 символа.
- Не должен быть UUID или напоминать UUID. Например, не используйте идентификатор вида
f47ac10b-58cc-0372-8567-0e02b2c3d479.
Если вы удалите базу данных, вы не сможете немедленно повторно использовать идентификатор базы данных в течение 5 минут.
Удалить защиту
Используйте защиту от случайного удаления, чтобы предотвратить случайное удаление базы данных. Защита от удаления работает следующим образом:
- Вы не сможете удалить базу данных с включенной защитой от удаления, пока не отключите защиту от удаления.
- Защита от удаления по умолчанию отключена.
- Вы можете включить защиту от удаления при создании базы данных или обновить конфигурацию базы данных , чтобы включить защиту от удаления.
Список баз данных
Для составления списка баз данных используйте один из следующих методов:
Консоль Firebase
В консоли Firebase перейдите на страницу базы данных Firestore .
- Нажмите Cloud Firestore , чтобы просмотреть все базы данных для проекта.
gcloud CLI
Используйте команду gcloud firestore databases list для вывода списка всех баз данных в вашем проекте.
gcloud firestore databases list
Просмотреть данные базы данных
Чтобы просмотреть сведения об одной базе данных, воспользуйтесь одним из следующих методов:
Консоль Firebase
В консоли Firebase перейдите на страницу базы данных Firestore .
- Выберите базу данных из списка баз данных.
gcloud CLI
Используйте команду gcloud firestore databases describe :
gcloud firestore databases describe --database=DATABASE_ID
Замените DATABASE_ID на идентификатор базы данных.
Обновление конфигурации базы данных
Чтобы обновить параметры конфигурации базы данных, используйте команду gcloud firestore databases update .
Используйте эту команду для изменения, включения или отключения защиты от удаления.
Обновите настройку защиты от удаления
Чтобы включить защиту от удаления в базе данных, используйте команду gcloud firestore databases update с флагом --delete-protection . Например:
gcloud CLI
gcloud firestore databases update --database=DATABASE_ID --delete-protection
Замените DATABASE_ID на идентификатор базы данных.
Чтобы отключить защиту от удаления базы данных, используйте команду gcloud firestore databases update с флагом --no-delete-protection . Например:
gcloud CLI
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection
Замените DATABASE_ID на идентификатор базы данных.
Удалить базу данных
Чтобы удалить базу данных, используйте консоль или командную строку. Удаление базы данных не влечёт за собой платы за операцию.
Если в базе данных включена защита от удаления, необходимо сначала отключить защиту от удаления .
Консоль Firebase
В консоли Firebase перейдите на страницу базы данных Firestore .
- Выберите базу данных, которую вы хотите удалить.
- Нажмите Посмотреть больше .
- Нажмите «Удалить», чтобы удалить базу данных.
gcloud CLI
Используйте команду `gcloud firestore databases delete` .
gcloud firestore databases delete --database=DATABASE_ID
Замените DATABASE_ID на идентификатор базы данных, которую необходимо удалить.
Клонировать базу данных
Вы можете клонировать существующую базу данных в выбранную временную метку в новую базу данных:
Клонированная база данных — это новая база данных, которая будет создана в том же месте, что и исходная база данных.
Для создания клона Cloud Firestore использует данные восстановления исходной базы данных на момент времени (PITR) . Клонированная база данных включает в себя все данные и индексы.
По умолчанию клонированная база данных будет зашифрована так же, как и исходная, с использованием либо стандартного шифрования Google, либо шифрования CMEK . Вы можете указать другой тип шифрования или использовать другой ключ для шифрования CMEK.
Метка времени имеет гранулярность в одну минуту и указывает момент времени в прошлом в периоде, определенном окном PITR :
- Если для вашей базы данных включен PITR, вы можете выбрать любую минуту за последние 7 дней (или меньше, если PITR был включен менее 7 дней назад).
- Если PITR не включен, вы можете выбрать любую минуту за последний час.
- Вы можете проверить самую раннюю метку времени, которую вы можете выбрать в описании вашей базы данных .
Консоль
В консоли Google Cloud перейдите на страницу Базы данных .
Нажмите кнопку в строке таблицы базы данных , которую вы хотите клонировать. Нажмите кнопку «Клонировать» . Откроется диалоговое окно «Создать клон» .
В диалоговом окне «Создать клон» укажите параметры для клонирования базы данных:
В поле «Укажите идентификатор клона» укажите идентификатор новой клонированной базы данных . Этот идентификатор не должен быть связан с существующей базой данных.
В поле «Клонировать из » выберите момент времени, который будет использоваться для клонирования. Выбранное время соответствует временной метке PITR с точностью до минуты.
Нажмите Создать клон .
gcloud
Используйте команду gcloud alpha firestore databases clone для клонирования базы данных:
gcloud alpha firestore databases clone \
--source-database='SOURCE_DATABASE' \
--snapshot-time='PITR_TIMESTAMP' \
--destination-database='DESTINATION_DATABASE_ID'
Заменить следующее:
SOURCE_DATABASE : имя существующей базы данных, которую вы хотите клонировать. Имя имеет формат
projects/ PROJECT_ID /databases/ SOURCE_DATABASE_ID.PITR_TIMESTAMP : временная метка PITR в формате RFC 3339 с точностью до минуты. Например:
2025-06-01T10:20:00.00Zили2025-06-01T10:30:00.00-07:00.DESTINATION_DATABASE_ID : идентификатор базы данных для новой клонированной базы данных. Этот идентификатор базы данных не должен быть связан с существующей базой данных.
Пример:
gcloud alpha firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='projects/example-project/databases/example-dest-db'
Изменить конфигурацию шифрования клонированной базы данных
По умолчанию клонированная база данных будет иметь ту же конфигурацию шифрования, что и исходная. Чтобы изменить конфигурацию шифрования, используйте аргумент --encryption-type :
- (По умолчанию)
use-source-encryption: использовать ту же конфигурацию шифрования, что и в исходной базе данных. -
google-default-encryption: использовать шифрование Google по умолчанию. -
customer-managed-encryption: использовать шифрование CMEK. Укажите идентификатор ключа в аргументе--kms-key-name.
В следующем примере показано, как настроить шифрование CMEK для клонированной базы данных:
gcloud alpha firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='projects/example-project/databases/example-dest-db' \
--encryption-type='customer-managed-encryption' \
--kms-key-name='projects/example-project/locations/us-central1/keyRings/example-key-ring/cryptoKeys/example-key'
Настройте разрешения на доступ к каждой базе данных
Условия управления удостоверениями и доступом можно использовать для настройки прав доступа на уровне отдельных баз данных. В следующих примерах используется интерфейс командной строки Google Cloud CLI для назначения условного доступа к одной или нескольким базам данных. Вы также можете определить условия IAM в консоли Google Cloud .
Просмотреть существующие политики IAM
gcloud projects get-iam-policy PROJECT_ID
Установите PROJECT_ID в соответствии с идентификатором вашего проекта.
Предоставить доступ к базе данных
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name=="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'
Установите следующее:
-
PROJECT_ID: идентификатор вашего проекта -
EMAIL: адрес электронной почты, представляющий конкретную учётную запись. Например,alice@example.com. -
DATABASE_ID: идентификатор базы данных. -
TITLE: необязательное название выражения. -
DESCRIPTION: необязательное описание выражения.
Предоставить доступ ко всем базам данных, кроме одной
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' \
--condition='expression=resource.name!="projects/PROJECT_ID/databases/DATABASE_ID",title=TITLE,description=DESCRIPTION'
Установите следующее:
-
PROJECT_ID: идентификатор вашего проекта -
EMAIL: адрес электронной почты, представляющий конкретную учётную запись. Например,alice@example.com. -
DATABASE_ID: идентификатор базы данных. -
TITLE: необязательное название выражения. -
DESCRIPTION: необязательное описание выражения.
Удалить политики для определенного участника и роли
gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all
Установите следующее:
-
PROJECT_ID: идентификатор вашего проекта -
EMAIL: адрес электронной почты, представляющий конкретную учётную запись. Например,alice@example.com.
Ограничения
В проекте может быть не более 100 баз данных. Вы можете обратиться в службу поддержки , чтобы запросить увеличение этого лимита.
Что дальше?
- Запустите Быстрый старт: создайте базу данных и подключитесь к ней .
- Узнайте о различиях в поведении .
- Узнайте о показателях Cloud Monitoring для Cloud Firestore с совместимостью с MongoDB .