На этой странице описывается, как создавать, обновлять и удалять базы данных Cloud Firestore . Вы можете создать несколько баз данных Cloud Firestore для одного проекта. Вы можете использовать несколько баз данных для настройки производственных и тестовых сред, для изоляции данных клиентов и для регионализации данных.
База данных (default)
Если вашему приложению не требуется несколько баз данных, используйте базу данных (default)
.
Если база данных не указана, клиентские библиотеки Cloud Firestore и Google Cloud CLI по умолчанию подключаются к базе данных (default)
.
(default)
.Требуемые роли
Для создания и управления базами данных вам нужна роль Owner
или Datastore Owner
Identity and Access Management. Эти роли предоставляют необходимые разрешения.
Требуемые разрешения
Для управления базами данных вам необходимы следующие разрешения:
- Создать базу данных:
datastore.databases.create
- Чтение конфигурации базы данных:
datastore.databases.getMetadata
- Настройте базу данных:
datastore.databases.update
- Удалить базу данных:
datastore.databases.delete
Создать базу данных
Для создания базы данных используйте один из следующих методов:
В консоли Firebase перейдите на страницу базы данных Firestore .
- Если это ваша первая именованная база данных, нажмите Добавить базу данных .
- В противном случае нажмите (по умолчанию) , затем Добавить базу данных .
- Настройте свою базу данных. Введите идентификатор базы данных. Выберите местоположение. Нажмите «Создать базу данных» .
Используйте команду 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
— необязательный флаг для включения защиты от удаления. Вы не сможете удалить базу данных с включенной защитой от удаления, пока не отключите этот параметр. Этот параметр отключен по умолчанию.
firebase firestore:databases:createDATABASE_ID \ --location=LOCATION \ [--delete-protectionDELETE_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. Например, не используйте ID типа
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 подключаются к (default)
базе данных Cloud Firestore в проекте. Чтобы создать клиента, подключенного к именованной базе данных, задайте идентификатор базы данных при создании экземпляра клиента.
Список баз данных
Для составления списка баз данных используйте один из следующих методов:
В консоли Google Cloud перейдите на страницу Базы данных .
Используйте команду gcloud firestore databases list
чтобы вывести список всех баз данных в вашем проекте.
gcloud firestore databases list
Используйте команду firebase firestore:databases:list
для вывода списка всех баз данных в вашем проекте.
firebase firestore:databases:list
Просмотреть данные базы данных
Чтобы просмотреть сведения об одной базе данных, воспользуйтесь одним из следующих методов:
Используйте команду gcloud firestore databases describe
:
gcloud firestore databases describe --database=DATABASE_ID
Используйте команду firebase firestore:databases:get
:
firebase firestore:databases:getDATABASE_ID
Замените DATABASE_ID на идентификатор базы данных.
Обновление конфигурации базы данных
Для обновления настроек конфигурации базы данных используйте команду gcloud firestore databases update
. Используйте эту команду для включения или отключения защиты от удаления.
Обновите настройку защиты от удаления
Чтобы включить защиту от удаления в базе данных, используйте команду gcloud firestore databases update
с флагом --delete-protection
. Например:
gcloud firestore databases update --database=DATABASE_ID --delete-protection
Замените DATABASE_ID на идентификатор базы данных.
Чтобы отключить защиту от удаления в базе данных, используйте команду gcloud firestore databases update
с флагом --no-delete-protection
. Например:
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection
Замените DATABASE_ID на идентификатор базы данных.
Удалить базу данных
Чтобы удалить базу данных, используйте консоль или командную строку.
Если в базе данных включена защита от удаления, необходимо сначала отключить защиту от удаления .
Если база данных содержит данные поиска App Engine или объекты blob , необходимо сначала удалить эти данные.
Удаление базы данных не приводит к автоматическому удалению любых триггеров Eventarc для этой базы данных. Триггер прекращает доставку событий, но продолжает существовать до тех пор, пока вы его не удалите .
Удаление базы данных не влечет за собой никаких расходов на операции по удалению.
В консоли Firebase перейдите на страницу базы данных Firestore .
- На вкладке Данные над представлением таблицы данных для базы данных нажмите , затем выберите Удалить базу данных .
- Следуйте инструкциям по удалению базы данных.
Используйте команду `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 . Пожалуйста, используйте API удаления индекса для удаления данных поиска GAE. Если вы недавно удалили данные поиска GAE, может пройти период ожидания, прежде чем вы сможете удалить базу данных. - Вы не можете удалить свою
(default)
базу данных, если она содержит какие-либо объекты blob . Используйте API удаления Blobstore для удаления данных Blobstore. Вы можете проверить, содержит ли ваша(default)
база данных данные Blobstore, выполнив следующий запрос GQL в консоли Google Cloud:SELECT * FROM __BlobInfo__
. - Повторное использование идентификатора базы данных возможно только через 5 минут после удаления.
- Cloud Function v1 не поддерживает именованные базы данных Firestore. Используйте Cloud Firestore Triggers (2nd Gen) для настройки событий для именованных баз данных.
- Триггеры функций Firestore v1 и триггеры событий Firestore могут перестать работать после удаления базы данных, даже если создается новая база данных с тем же именем.