Cette page explique 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, isoler les données client et régionaliser les données.
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 à la base de données (default)
par défaut.
Rôles requis
Pour créer et gérer des bases de données, vous devez disposer du rôle Identity and Access Management Owner
ou Datastore Owner
. Ces rôles accordent les autorisations requises.
Autorisations requises
Pour gérer les bases de données, vous devez disposer des autorisations suivantes :
- Créez 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 Firebase, accédez à la page Base de données Firestore.
- Si c'est la première fois que vous créez une base de données nommée, cliquez sur Ajouter une base de données.
- Sinon, cliquez sur (par défaut), puis sur Ajouter une base de données.
- Configurez votre base de données. Saisissez un ID de base de données. Sélectionnez une zone géographique. Cliquez sur Créer une base de données.
gcloud
Exécutez la commande gcloud firestore databases create
.
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --type=DATABASE_TYPE \ [--delete-protection]
Remplacez les éléments suivants :
- DATABASE_ID : ID de base de données valide.
- LOCATION : nom d'une Cloud Firestore multirégion ou région.
- DATABASE_TYPE :
firestore-native
pour le mode natif oudatastore-mode
pour le mode Datastore.
--delete-protection
est un indicateur facultatif permettant d'activer la protection contre la suppression.
Vous ne pouvez pas supprimer une base de données dont la protection contre la suppression est activée tant que vous n'avez pas désactivé ce paramètre. Ce paramètre est désactivé par défaut.
Pour ajouter des tags à la base de données, utilisez l'option --tags
. Exemple :
--tags=123/environment=production,123/costCenter=marketing
--tags=tagKeys/333=tagValues/444
CLI Firebase
firebase firestore:databases:create DATABASE_ID \ --location=LOCATION \ [--delete-protection DELETE_PROTECTION_ENABLEMENT]
Remplacez les éléments suivants :
- DATABASE_ID : ID de base de données valide.
- LOCATION : nom d'une région ou d'un emplacement multirégional Cloud Firestore.
- DELETE_PROTECTION_ENABLEMENT :
ENABLED
ouDISABLED
.
La base de données créée est toujours en mode natif Firestore.
--delete-protection
est un argument facultatif permettant d'activer la protection contre la suppression. Vous ne pouvez pas supprimer une base de données dont la protection contre la suppression est activée tant que vous n'avez pas désactivé ce paramètre. Ce paramètre est désactivé par défaut.
Terraform
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 : ID de base de données valide.
- LOCATION : nom d'une région ou d'un emplacement multirégional Cloud Firestore.
- DATABASE_TYPE :
FIRESTORE_NATIVE
pour le mode natif ouDATASTORE_MODE
pour le mode Datastore. - DELETE_PROTECTION_ENABLEMENT :
DELETE_PROTECTION_ENABLED
ouDELETE_PROTECTION_DISABLED
.
delete_protection_state
est un argument facultatif permettant d'activer la protection contre la suppression. Vous ne pouvez pas supprimer une base de données dont la protection contre la suppression est activée tant que vous n'avez pas désactivé ce paramètre. Ce paramètre est désactivé par défaut.
ID de la base de données
Les ID de base de données valides incluent (default)
et les ID qui respectent les règles suivantes :
- N'inclut que des lettres, des chiffres et des traits d'union (
-
). - Les lettres doivent être en minuscules.
- Il doit commencer par une lettre.
- Le dernier caractère doit être une lettre ou un chiffre.
- 4 caractères minimum.
- 63 caractères au maximum.
- Ne doit pas être un UUID ni y ressembler. Par exemple, n'utilisez pas un ID tel que
f47ac10b-58cc-0372-8567-0e02b2c3d479
.
Si vous supprimez une base de données, vous ne pouvez pas réutiliser immédiatement son ID et devez attendre cinq minutes.
Supprimer la protection
Utilisez la protection contre la suppression pour éviter la suppression accidentelle d'une base de données. Vous ne pouvez pas supprimer une base de données pour laquelle la protection contre la suppression est activée tant que vous ne l'avez pas désactivée. 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 mettre à jour la configuration d'une base de données pour activer la protection contre la suppression.
Configurer Cloud Firestore Security Rules pour vos bases de données
Utilisez la CLI Firebase pour déployer Cloud Firestore Security Rules dans chacune de vos bases de données. Consultez le guide de gestion et de déploiement de Cloud Firestore Security Rules.
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 dont le nom n'est pas (default)
. Par défaut, les SDK Firebase et les bibliothèques clientes des API Google se connectent à la base de données (default)
Cloud Firestore d'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.
Répertorier des bases de données
Utilisez l'une des méthodes suivantes pour lister vos bases de données :
Console
Dans la console Google Cloud, accédez à la page Base de données.
gcloud
Utilisez la commande gcloud firestore databases list
pour lister toutes les bases de données de votre projet.
gcloud firestore databases list
CLI Firebase
Utilisez la commande firebase firestore:databases:list
pour lister toutes les bases de données de votre projet.
firebase 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 l'une des méthodes suivantes :
gcloud
Exécutez la commande gcloud firestore databases describe
:
gcloud firestore databases describe --database=DATABASE_ID
CLI Firebase
Exécutez la commande firebase firestore:databases:get
:
firebase firestore:databases:get 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 firestore databases update
.
Utilisez cette commande pour activer ou désactiver la protection contre la suppression.
Modifier 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 firestore databases update
avec l'option --delete-protection
. Exemple :
gcloud
gcloud 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 firestore databases update
avec l'option --no-delete-protection
. Exemple :
gcloud
gcloud 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é pour 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 les supprimer.
La suppression d'une base de données ne supprime pas automatiquement les déclencheurs de cette base de données.Eventarc Le déclencheur cesse de diffuser des événements, mais continue d'exister jusqu'à ce que vous le supprimiez.
La suppression d'une base de données n'entraîne pas de frais pour les opérations de suppression.
Console
-
Dans la console Firebase, accédez à la page Base de données Firestore.
- Dans l'onglet "Données", au-dessus de la vue du tableau de données de la base de données, cliquez sur , puis sélectionnez Supprimer la base de données.
- Suivez les instructions pour supprimer la base de données.
gcloud
Utilisez la commande `gcloud firestore databases delete`.
gcloud 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 Identity and Access Management 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 Google Cloud.
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'
Renseignez les champs suivants :
PROJECT_ID
: ID de votre projetEMAIL
: adresse e-mail qui représente un compte Google spécifique. Exemple :alice@example.com
DATABASE_ID
: ID de base de données.TITLE
: titre facultatif de l'expression.DESCRIPTION
: 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'
Renseignez les champs suivants :
PROJECT_ID
: ID de votre projetEMAIL
: adresse e-mail qui représente un compte Google spécifique. Exemple :alice@example.com
DATABASE_ID
: ID de base de données.TITLE
: titre facultatif de l'expression.DESCRIPTION
: description facultative de l'expression.
Supprimer des règles 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
Renseignez les champs suivants :
PROJECT_ID
: ID de votre projetEMAIL
: adresse e-mail qui représente un compte Google spécifique. Exemple :alice@example.com
Cloud Monitoring
Les métriques Cloud Firestore sont signalées sous deux ressources surveillées.
Vous pouvez inspecter les métriques agrégées au niveau de la base de données en consultant firestore.googleapis.com/Database
. Les métriques indiquées sous firestore_instance
sont agrégées au niveau du projet.
Limites
- Vous pouvez créer jusqu'à 100 bases de données par projet. Vous pouvez contacter l'assistance pour demander à augmenter cette limite.
- Vous ne pouvez pas supprimer votre base de données
(default)
si elle contient des données de recherche GAE. Veuillez utiliser l'API de suppression d'index pour supprimer les données de recherche GAE. Si vous avez récemment supprimé des données GAE Search, il est possible qu'un délai d'attente soit nécessaire avant de pouvoir supprimer la base de données. - Vous ne pouvez pas supprimer votre base de données
(default)
si elle contient des entités blob. Veuillez utiliser l'API de suppression Blobstore pour supprimer les données Blobstore. Pour vérifier si votre base de données(default)
contient des données Blobstore, exécutez la requête GQL suivante dans la console Google Cloud :SELECT * FROM __BlobInfo__
. - Vous ne pouvez pas réutiliser un ID de base de données avant cinq minutes après la suppression.
- Cloud Functions v1 n'est pas compatible avec les bases de données nommées Firestore. Veuillez utiliser les déclencheurs Cloud Firestore (2e génération) pour configurer des événements pour des 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.