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