Cette page décrit comment créer, mettre à jour et supprimer des bases de données Cloud Firestore. Vous pouvez créer plusieurs bases de données Cloud Firestore par projet. Vous pouvez utiliser plusieurs bases de données pour configurer des environnements de production et de test, pour isoler les données client et pour la régionalisation des données.
La base de données (default)
Si votre application ne nécessite pas plusieurs bases de données, utilisez la base de données (default)
.
Si vous ne spécifiez pas de base de données, les bibliothèques clientes Cloud Firestore et Google Cloud CLI se connectent par défaut à la base de données (default)
.
(default)
.Rôles requis
Pour créer et gérer des bases de données, vous avez besoin du rôle Owner
ou Datastore Owner
Gestion des identités et des accès. Ces rôles accordent les autorisations requises.
Autorisations requises
Pour gérer des bases de données, vous avez besoin des autorisations suivantes :
- Créer une base de données :
datastore.databases.create
- Lire la configuration de la base de données :
datastore.databases.getMetadata
- Configurer une base de données :
datastore.databases.update
- Supprimer une base de données :
datastore.databases.delete
Créer une base de données
Pour créer une base de données, utilisez l'une des méthodes suivantes :
Console
Dans la console Google Cloud Platform, accédez à la page Bases de données .
- Cliquez sur Créer une base de données .
- Sélectionnez un mode de base de données. Cliquez sur Continuer
- Configurez votre base de données. Entrez un ID de base de données. Sélectionnez un emplacement. Cliquez sur Créer une base de données .
gcloud
Utilisez la commande gcloud alpha firestore databases create
.
gcloud alpha firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --type=DATABASE_TYPE \ [--delete-protection]
Remplacez les éléments suivants :
- DATABASE_ID : un identifiant de base de données valide .
- LOCATION : le nom d'une multirégion ou d'une région Cloud Firestore .
- DATABASE_TYPE : soit
firestore-native
pour le mode Natif, soit datastore-mode pour le mode Datastore.
--delete-protection
est un indicateur facultatif pour activer la protection contre la suppression. Vous ne pouvez pas supprimer une base de données avec la protection contre la suppression activée tant que vous n'avez pas désactivé ce paramètre. Ce paramètre est désactivé par défaut.
CLI Firebase
firebase firestore:databases:create DATABASE_ID \ --location=LOCATION \ [--delete-protection DELETE_PROTECTION_ENABLEMENT]
Remplacez les éléments suivants :
- DATABASE_ID : un identifiant de base de données valide .
- LOCATION : le nom d'une multirégion ou d'une région Cloud Firestore .
- DELETE_PROTECTION_ENABLEMENT : Soit
ENABLED
, soitDISABLED
. La base de données créée est toujours en mode Firestore Native.
--delete-protection
Terraforme
resource "google_firestore_database" "database" { project = "project-id" name = DATABASE_ID location_id = LOCATION type = DATABASE_TYPE // Optional delete_protection_state = DELETE_PROTECTION_STATE }
Remplacez les éléments suivants :
- DATABASE_ID : un identifiant de base de données valide .
- LOCATION : le nom d'une multirégion ou d'une région Cloud Firestore .
- DATABASE_TYPE : soit
FIRESTORE_NATIVE
pour le mode Natif, soitDATASTORE_MODE
pour le mode Datastore. - DELETE_PROTECTION_ENABLEMENT : Soit
DELETE_PROTECTION_ENABLED
, soitDELETE_PROTECTION_DISABLED
.
delete_protection_state
est un argument facultatif pour activer la protection contre la suppression. Vous ne pouvez pas supprimer une base de données avec la protection contre la suppression activée tant que vous n'avez pas désactivé ce paramètre. Ce paramètre est désactivé par défaut.
ID de base de données
Les ID de base de données valides incluent (default)
et les ID conformes aux éléments suivants :
- Inclut uniquement des lettres, des chiffres et des tirets (
-
). - Les lettres doivent être en minuscules.
- Le premier caractère doit être une lettre.
- Le dernier caractère doit être une lettre ou un chiffre.
- Minimum de 4 caractères.
- Maximum de 63 caractères.
- Ne doit pas être un UUID ni ressembler à un UUID. Par exemple, n'utilisez pas un identifiant tel que
f47ac10b-58cc-0372-8567-0e02b2c3d479
.
Si vous supprimez une base de données, vous ne pouvez pas réutiliser immédiatement l'ID de base de données avant 5 minutes.
Supprimer la protection
Utilisez la protection contre la suppression pour empêcher la suppression accidentelle d’une base de données. Vous ne pouvez pas supprimer une base de données avec la protection contre la suppression activée tant que vous n'avez pas désactivé la protection contre la suppression. La protection contre la suppression est désactivée par défaut. Vous pouvez activer la protection contre la suppression lorsque vous créez la base de données ou vous pouvez mettre à jour une configuration de base de données pour activer la protection contre la suppression.
Configurer les règles de sécurité Cloud Firestore pour vos bases de données
Utilisez la CLI Firebase pour déployer les règles de sécurité Cloud Firestore sur chacune de vos bases de données. Reportez-vous au guide de gestion et de déploiement des règles de sécurité Cloud Firestore .
Accéder à une base de données nommée avec une bibliothèque cliente
Une base de données nommée inclut toute base de données non nommée (default)
. Par défaut, les SDK Firebase et les bibliothèques clientes d'API Google se connectent à la base de données Cloud Firestore (default)
dans un projet. Pour créer un client connecté à une base de données nommée, définissez l'ID de la base de données lorsque vous instanciez un client.
Liste des bases de données
Utilisez l'une des méthodes suivantes pour répertorier vos bases de données :
Console
Dans la console Google Cloud Platform, accédez à la page Bases de données .
gcloud
Utilisez la commande gcloud firestore databases list
pour répertorier toutes les bases de données de votre projet.
gcloud firestore databases list
Afficher les détails de la base de données
Pour afficher les détails d'une seule base de données, utilisez la commande gcloud firestore databases describe
:
gcloud
gcloud firestore databases describe --database=DATABASE_ID
Remplacez DATABASE_ID par un ID de base de données.
Mettre à jour la configuration de la base de données
Pour mettre à jour les paramètres de configuration d'une base de données, utilisez la commande gcloud alpha firestore databases update
. Utilisez cette commande pour modifier afin d'activer ou de désactiver la protection contre la suppression.
Mettre à jour le paramètre de protection contre la suppression
Pour activer la protection contre la suppression sur une base de données, utilisez la commande gcloud alpha firestore databases update
avec l'indicateur --delete-protection
. Par exemple:
gcloud
gcloud alpha firestore databases update --database=DATABASE_ID --delete-protection
Remplacez DATABASE_ID par un ID de base de données.
Pour désactiver la protection contre la suppression sur une base de données, utilisez la commande gcloud alpha firestore databases update
avec l'indicateur --no-delete-protection
. Par exemple:
gcloud
gcloud alpha firestore databases update --database=DATABASE_ID --no-delete-protection
Remplacez DATABASE_ID par un ID de base de données.
Supprimer une base de données
Pour supprimer une base de données, utilisez la console ou l'outil de ligne de commande.
Si le paramètre de protection contre la suppression est activé dans la base de données, vous devez d'abord désactiver la protection contre la suppression .
Si la base de données contient des données de recherche App Engine ou des entités blob , vous devez d'abord supprimer ces données.
La suppression d'une base de données ne supprime pas automatiquement les déclencheurs Eventarc pour cette base de données. Le déclencheur cesse de transmettre les événements mais continue d'exister jusqu'à ce que vous le supprimiez .
Console
Dans la console Google Cloud Platform, accédez à la page Bases de données .
- Cliquez sur Afficher plus dans la ligne du tableau correspondant à la base de données que vous souhaitez supprimer. Cliquez sur Supprimer . Une boîte de dialogue apparaît.
Dans la base de données Supprimer ? , confirmez la suppression en tapant l'ID de la base de données dans le champ de texte. Cliquez sur Supprimer . La console vous informe du succès ou de l'échec de l'opération.
Si l'opération échoue, affichez les détails de la base de données et vérifiez que la protection contre la suppression est désactivée. Pour désactiver la protection contre la suppression, consultez Mettre à jour le paramètre de protection contre la suppression .
gcloud
Utilisez la commande « gcloud alpha firestore databases delete » .
gcloud alpha firestore databases delete --database=DATABASE_ID
Remplacez DATABASE_ID par l'ID de la base de données à supprimer.
Configurer les autorisations d'accès par base de données
Vous pouvez utiliser les conditions de gestion des identités et des accès pour configurer les autorisations d'accès au niveau de chaque base de données. Les exemples suivants utilisent Google Cloud CLI pour attribuer un accès conditionnel à une ou plusieurs bases de données. Vous pouvez également définir des conditions IAM dans la console GCP .
Afficher les stratégies IAM existantes
gcloud projects get-iam-policy PROJECT_ID
Définissez PROJECT_ID
sur l'ID de votre projet.
Accorder l'accès à une base de données
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'
Définissez les éléments suivants :
-
PROJECT_ID
: votre identifiant de projet -
EMAIL
: une adresse e-mail qui représente un compte Google spécifique. Par exemple,alice@example.com
. -
DATABASE_ID
: un identifiant de base de données. -
TITLE
: un titre facultatif pour l'expression. -
DESCRIPTION
: une description facultative de l'expression.
Accorder l'accès à toutes les bases de données sauf une
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'
Définissez les éléments suivants :
-
PROJECT_ID
: votre identifiant de projet -
EMAIL
: une adresse e-mail qui représente un compte Google spécifique. Par exemple,alice@example.com
. -
DATABASE_ID
: un identifiant de base de données. -
TITLE
: un titre facultatif pour l'expression. -
DESCRIPTION
: une description facultative de l'expression.
Supprimer les stratégies pour un membre et un rôle donnés
gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all
Définissez les éléments suivants :
-
PROJECT_ID
: votre identifiant de projet -
EMAIL
: une adresse e-mail qui représente un compte Google spécifique. Par exemple,alice@example.com
.
Surveillance du cloud
Les métriques Cloud Firestore sont signalées sous deux ressources surveillées.
Vous pouvez inspecter les métriques globales au niveau de la base de données en consultant firestore.googleapis.com/Database
. Les métriques signalées sous firestore_instance
sont agrégées au niveau du projet.
Limites
- Vous pouvez avoir un maximum de 100 bases de données par projet. Vous pouvez contacter le support pour demander une augmentation de cette limite.
- Vous ne pouvez pas supprimer votre base de données si elle contient des données de recherche GAE et/ou des entités blob . Veuillez utiliser l'API de suppression d'index pour supprimer les données de recherche GAE et l'API de suppression de Blobstore pour supprimer les données de Blobstore.
- Vous ne pouvez pas réutiliser un ID de base de données avant 5 minutes après la suppression.
- Cloud Function v1 ne prend pas en charge les bases de données Firestore Named. Veuillez utiliser les déclencheurs Cloud Firestore (2e génération) pour configurer les événements pour les bases de données nommées.
- Les déclencheurs de fonction Firestore v1 et les déclencheurs d'événements Firestore peuvent cesser de fonctionner après la suppression de la base de données, même si une nouvelle base de données est créée avec le même nom.