На этой странице описывается, как создавать, обновлять и удалять базы данных Cloud Firestore . Вы можете создать несколько баз данных Cloud Firestore для одного проекта. Вы можете использовать несколько баз данных для настройки производственных и тестовых сред, изоляции данных клиентов и регионализации данных.
База данных (default)
Если база данных не указана, клиентские библиотеки Cloud Firestore и Google Cloud CLI по умолчанию подключаются к базе данных (default)
.
Требуемые роли
Для создания и управления базами данных вам потребуется роль Owner
или Datastore Owner
в системе управления удостоверениями и доступом. Эти роли предоставляют необходимые разрешения.
Требуемые разрешения
Для управления базами данных вам необходимы следующие разрешения:
- Создать базу данных:
datastore.databases.create
- Чтение конфигурации базы данных:
datastore.databases.getMetadata
- Настройте базу данных:
datastore.databases.update
- Удалить базу данных:
datastore.databases.delete
- Клонировать базу данных:
datastore.databases.clone
Создать базу данных
Чтобы создать базу данных, воспользуйтесь одним из следующих методов:
Консоль
В консоли Firebase перейдите на страницу базы данных Firestore .
- Если это ваша первая именованная база данных, нажмите Добавить базу данных .
- В противном случае нажмите (по умолчанию) , затем Добавить базу данных .
- Настройте базу данных. Введите идентификатор базы данных. Выберите местоположение. Нажмите «Создать базу данных» .
gcloud
Используйте команду gcloud firestore databases create
.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --type=DATABASE_TYPE \ [--delete-protection]
Заменить следующее:
- DATABASE_ID : действительный идентификатор базы данных .
- LOCATION : имя мультирегиона или региона Cloud Firestore .
- DATABASE_TYPE : либо
firestore-native
для собственного режима, либоdatastore-mode
для режима хранилища данных.
--delete-protection
— необязательный флаг для включения защиты от удаления. Вы не сможете удалить базу данных с включённой защитой от удаления, пока не отключите этот параметр. По умолчанию этот параметр отключён.
Чтобы добавить теги в базу данных, используйте флаг --tags
. Например:
-
--tags=123/environment=production,123/costCenter=marketing
-
--tags=tagKeys/333=tagValues/444
Firebase CLI
firebase firestore:databases:create DATABASE_ID \ --location=LOCATION \ [--delete-protection DELETE_PROTECTION_ENABLEMENT]
Заменить следующее:
- DATABASE_ID : действительный идентификатор базы данных .
- LOCATION : имя мультирегиона или региона Cloud Firestore .
- DELETE_PROTECTION_ENABLEMENT :
ENABLED
илиDISABLED
. База данных всегда создается в основном режиме Firestore.
--delete-protection
— необязательный аргумент для включения защиты от удаления. Вы не сможете удалить базу данных с включённой защитой от удаления, пока не отключите этот параметр. По умолчанию этот параметр отключён.
Терраформировать
resource "google_firestore_database" "database" { project = "project-id" name = DATABASE_ID location_id = LOCATION type = DATABASE_TYPE // Optional delete_protection_state = DELETE_PROTECTION_STATE }
Заменить следующее:
- DATABASE_ID : действительный идентификатор базы данных .
- LOCATION : имя мультирегиона или региона Cloud Firestore .
- DATABASE_TYPE : либо
FIRESTORE_NATIVE
для собственного режима, либоDATASTORE_MODE
для режима хранилища данных. - DELETE_PROTECTION_ENABLEMENT :
DELETE_PROTECTION_ENABLED
илиDELETE_PROTECTION_DISABLED
.
delete_protection_state
— необязательный аргумент для включения защиты от удаления. Вы не сможете удалить базу данных с включённой защитой от удаления, пока не отключите этот параметр. По умолчанию этот параметр отключён.
Идентификатор базы данных
Допустимые идентификаторы базы данных включают (default)
и идентификаторы, соответствующие следующему:
- Содержит только буквы, цифры и дефисы (
-
). - Буквы должны быть строчными.
- Первый символ должен быть буквой.
- Последний символ должен быть буквой или цифрой.
- Минимум 4 символа.
- Максимум 63 символа.
- Не должен быть UUID или напоминать UUID. Например, не используйте идентификатор вида
f47ac10b-58cc-0372-8567-0e02b2c3d479
.
Если вы удалите базу данных, вы не сможете немедленно повторно использовать идентификатор базы данных в течение 5 минут.
Удалить защиту
Используйте защиту от удаления, чтобы предотвратить случайное удаление базы данных. Вы не сможете удалить базу данных с включённой защитой от удаления, пока не отключите её. Защита от удаления отключена по умолчанию. Вы можете включить защиту от удаления при создании базы данных или обновить её конфигурацию, чтобы включить защиту от удаления.
Настройте Cloud Firestore Security Rules для ваших баз данных
Используйте Firebase CLI для развертывания Cloud Firestore Security Rules в каждой из ваших баз данных. Подробнее об управлении и развертывании Cloud Firestore Security Rules см. в руководстве .
Доступ к именованной базе данных с помощью клиентской библиотеки
Именованная база данных включает в себя любую базу данных без имени (default)
. По умолчанию Firebase SDK и клиентские библиотеки Google API подключаются к базе данных Cloud Firestore (default)
в проекте. Чтобы создать клиент, подключенный к именованной базе данных, укажите идентификатор базы данных при создании экземпляра клиента.
Список баз данных
Для составления списка баз данных используйте один из следующих методов:
Консоль
В консоли Google Cloud перейдите на страницу Базы данных .
gcloud
Используйте команду gcloud firestore databases list
для вывода списка всех баз данных в вашем проекте.
gcloud firestore databases list
Firebase CLI
Используйте команду firebase firestore:databases:list
для вывода списка всех баз данных в вашем проекте.
firebase firestore:databases:list
Просмотреть данные базы данных
Чтобы просмотреть сведения об одной базе данных, воспользуйтесь одним из следующих методов:
gcloud
Используйте команду gcloud firestore databases describe
:
gcloud firestore databases describe --database=DATABASE_ID
Firebase CLI
Используйте команду firebase firestore:databases:get
:
firebase firestore:databases:get DATABASE_ID
Замените DATABASE_ID на идентификатор базы данных.
Обновление конфигурации базы данных
Чтобы обновить настройки конфигурации базы данных, используйте команду gcloud firestore databases update
. Эта команда позволяет включить или отключить защиту от удаления.
Обновите настройку защиты от удаления
Чтобы включить защиту от удаления в базе данных, используйте команду gcloud firestore databases update
с флагом --delete-protection
. Например:
gcloud
gcloud firestore databases update --database=DATABASE_ID --delete-protection
Замените DATABASE_ID на идентификатор базы данных.
Чтобы отключить защиту от удаления базы данных, используйте команду gcloud firestore databases update
с флагом --no-delete-protection
. Например:
gcloud
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection
Замените DATABASE_ID на идентификатор базы данных.
Удалить базу данных
Чтобы удалить базу данных, используйте консоль или инструмент командной строки.
Если в базе данных включена защита от удаления, необходимо сначала отключить защиту от удаления .
Если база данных содержит данные поиска App Engine или объекты blob , необходимо сначала удалить эти данные.
Удаление базы данных не приводит к автоматическому удалению всех триггеров Eventarc для этой базы данных. Триггер перестаёт отправлять события, но продолжает существовать до тех пор, пока вы его не удалите .
Удаление базы данных не влечет за собой оплату за операции удаления.
Консоль
В консоли Firebase перейдите на страницу базы данных Firestore .
- На вкладке Данные, над представлением таблицы данных для базы данных, нажмите , затем выберите Удалить базу данных .
- Следуйте инструкциям по удалению базы данных.
gcloud
Используйте команду `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 не включен, вы можете выбрать любую минуту за последний час.
- Вы можете проверить самую раннюю метку времени, которую вы можете выбрать в описании вашей базы данных .
Консоль
Консоль Firebase не поддерживает клонирование баз данных. Для клонирования баз данных вы можете воспользоваться инструкциями по использованию Google Cloud CLI.
gcloud
Используйте команду gcloud alpha firestore databases clone
для клонирования базы данных:
gcloud alpha firestore databases clone \
--source-database='SOURCE_DATABASE_ID' \
--snapshot-time='PITR_TIMESTAMP' \
--destination-database='DESTINATION_DATABASE_ID'
Заменить следующее:
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
: адрес электронной почты, соответствующий конкретному аккаунту Google. Например,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
: адрес электронной почты, соответствующий конкретному аккаунту Google. Например,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
: адрес электронной почты, соответствующий конкретному аккаунту Google. Например,alice@example.com
.
Мониторинг облаков
Показатели Cloud Firestore предоставляются по двум отслеживаемым ресурсам.
- firestore.googleapis.com/Database
- firestore_instance (устаревший)
Вы можете просмотреть агрегированные метрики на уровне базы данных, перейдя по ссылке firestore.googleapis.com/Database
. Метрики, представленные в разделе firestore_instance
, агрегируются на уровне проекта.
Ограничения
- В проекте может быть не более 100 баз данных. Вы можете обратиться в службу поддержки , чтобы запросить увеличение этого лимита.
- Вы не можете удалить свою
(default)
базу данных, если она содержит данные поиска GAE . Используйте API удаления индекса для удаления данных поиска GAE. Если вы недавно удалили данные поиска GAE, может потребоваться некоторое время, прежде чем вы сможете удалить базу данных. - Вы не сможете удалить базу данных
(default)
, если она содержит какие-либо объекты BLOB-объектов . Используйте API удаления Blobstore для удаления данных Blobstore. Вы можете проверить наличие данных Blobstore в вашей базе данных(default)
, выполнив следующий GQL-запрос в консоли Google Cloud:SELECT * FROM __BlobInfo__
. - Повторное использование идентификатора базы данных возможно только через 5 минут после удаления.
- Cloud Function v1 не поддерживает именованные базы данных Firestore. Для настройки событий для именованных баз данных используйте триггеры Cloud Firestore (2-го поколения) .
- Триггеры функций Firestore v1 и триггеры событий Firestore могут перестать работать после удаления базы данных, даже если создана новая база данных с тем же именем.