Créer et gérer des bases de données

Cette page explique comment créer, mettre à jour et supprimer des Cloud Firestore bases de données. Vous pouvez créer plusieurs Cloud Firestore bases de données 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.

Utilisation du niveau sans frais

Cloud Firestore propose un niveau sans frais qui vous permet de démarrer sans frais.

Le niveau sans frais ne s'applique qu'à une seule Cloud Firestore base de données par projet. La première base de données créée dans un projet sans base de données de niveau sans frais bénéficiera de ce niveau. Si la base de données à laquelle le niveau sans frais est appliqué est supprimée, la base de données suivante créée bénéficiera de ce niveau.

Avant de commencer

Vous devez effectuer les opérations suivantes avant de créer une base de données :

  1. Si vous ne l'avez pas encore fait, créez un projet Firebase dans la Firebase console, cliquez sur Ajouter un projet, puis suivez les instructions pour créer un projet Firebase ou pour ajouter les services Firebase à un projet Google Cloud existant.

  2. Attribuez les rôles Identity and Access Management appropriés, comme décrit dans la section suivante.

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 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
  • Cloner une base de données : datastore.databases.clone

Créer une base de données

Pour créer une base de données Cloud Firestore, utilisez l'une des méthodes suivantes :

Firebase console
  1. Dans la console Firebase, accédez à la page Firestore Database (Base de données Firestore).

    Accéder à la page "Base de données Firestore"

  2. Cliquez sur Add database (Ajouter une base de données).
  3. Sélectionnez Enterprise edition (Édition Enterprise). Cliquez sur Next (Suivant).
  4. Sélectionnez Firestore in Native mode (Firestore en mode natif).
  5. Saisissez un ID de base de données.
  6. Sélectionnez un emplacement pour votre base de données. Cliquez sur Next (Suivant).
  7. Sélectionnez un mode de démarrage pour vos Cloud Firestore Security Rules :

    Mode test
    Convient pour se familiariser avec les bibliothèques clientes mobiles et Web, mais permet à tout le monde de lire et d'écraser les données. Après le test, veillez à consulter la sectionSécuriser vos données.
    Mode production
    Refuse toutes les lectures et écritures des clients mobiles et Web. Vos serveurs d'applications authentifiés (Node.js, Python, Java) peuvent toujours accéder à votre base de données
  8. Cliquez sur Create (Créer).
CLI gcloud

Utilisez la gcloud firestore databases create commande :.

gcloud firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--edition=enterprise \
--enable-firestore-data-access \
--enable-realtime-updates

Remplacez les éléments suivants :

ID de la base de données

Les ID de base de données valides incluent ceux qui sont conformes aux éléments suivants :

  • Ne contient 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 au minimum.
  • 63 caractères au maximum.
  • Ne doit pas être un UUID ni lui 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 de supprimer accidentellement une base de données. La protection contre la suppression fonctionne de la manière suivante :

  • Vous ne pouvez pas supprimer une base de données pour laquelle la protection contre la suppression est activée tant que vous ne la désactivez pas.
  • 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.

Répertorier des bases de données

Utilisez l'une des méthodes suivantes pour répertorier vos bases de données :

CLI gcloud

Utilisez la gcloud firestore databases list commande 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 des informations sur une seule base de données, utilisez l'une des méthodes suivantes :

CLI gcloud

Utilisez la gcloud firestore databases describe commande :

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 modifier les paramètres de configuration d'une base de données, utilisez la gcloud firestore databases update commande.

Utilisez cette commande pour modifier, 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 :

CLI 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 :

CLI 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. La suppression d'une base de données n'entraîne pas de frais pour les opérations de suppression.

Si le paramètre de protection contre la suppression est activé pour la base de données, vous devez d'abord le désactiver.

CLI gcloud

Utilisez la `gcloud firestore databases delete` commande.

gcloud firestore databases delete --database=DATABASE_ID

Remplacez DATABASE_ID par l'ID de la base de données à supprimer.

Cloner une base de données

Vous pouvez cloner une base de données existante à un code temporel sélectionné dans une nouvelle base de données :

  • La base de données clonée est une nouvelle base de données qui sera créée au même emplacement que la base de données source.

    Pour créer un clone, Cloud Firestore utilise les données de récupération à un moment précis (PITR) de la base de données source. La base de données clonée inclut toutes les données et tous les index.

  • Par défaut, la base de données clonée sera chiffrée de la même manière que la base de données source, à l'aide du chiffrement par défaut de Google ou du chiffrement CMEK. Vous pouvez spécifier un autre type de chiffrement ou utiliser une autre clé pour le chiffrement CMEK.

  • Le code temporel a une granularité d'une minute et spécifie un moment dans le passé, au cours de la période définie par la fenêtre PITR :

    • Si la récupération à un moment précis est activée pour votre base de données, vous pouvez sélectionner n'importe quelle minute au cours des sept derniers jours (ou moins si la récupération à un moment précis a été activée il y a moins de sept jours).
    • Si la récupération à un moment précis n'est pas activée, vous pouvez sélectionner n'importe quelle minute au cours de la dernière heure.
    • Vous pouvez vérifier le code temporel le plus ancien que vous pouvez choisir dans la description de votre base de données.

Console

  1. Dans la console Google Cloud, accédez à la page Bases de données.

    Accéder à la page "Bases de données"

  2. Cliquez sur Afficher plus dans la ligne de tableau de la base de données que vous souhaitez cloner. Cliquez sur Cloner. La boîte de dialogue Créer un clone s'affiche.

  3. Dans la boîte de dialogue Créer un clone, fournissez les paramètres de clonage de la base de données :

    1. Dans le champ Indiquez un ID pour le clone, un ID de base de données pour la nouvelle base de données clonée. Cet ID de base de données ne doit pas être associé à une base de données existante.

    2. Dans le champ Cloner à partir de, sélectionnez un moment à utiliser pour le clonage. L'heure sélectionnée correspond à un code temporel de récupération à un moment précis, avec une granularité à la minute.

  4. Cliquez sur Créer un clone.

gcloud

Utilisez la gcloud firestore databases clone commande pour cloner une base de données :

gcloud firestore databases clone \
--source-database='SOURCE_DATABASE' \
--snapshot-time='PITR_TIMESTAMP' \
--destination-database='DESTINATION_DATABASE_ID'

Remplacez les éléments suivants :

Exemple :

gcloud firestore databases clone \
--source-database='projects/example-project/databases/example-source-db' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db'

Si vous souhaitez associer des tags lors du clonage d'une base de données, utilisez la commande précédente avec l'option --tags, qui est une liste facultative de paires KEY=VALUE (clé/valeur) de tags à associer.

Exemple :

gcloud firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db' \
--tags=key1=value1,key2=value2

Par défaut, la base de données clonée aura la même configuration de chiffrement que la base de données source. Pour modifier la configuration de chiffrement, utilisez l'argument --encryption-type :

  • (Par défaut) use-source-encryption : utilise la même configuration de chiffrement que la base de données source.
  • google-default-encryption : utilise le chiffrement par défaut de Google.
  • customer-managed-encryption : utilise le chiffrement CMEK. Spécifiez un ID de clé dans l'argument --kms-key-name.

L'exemple suivant montre comment configurer le chiffrement CMEK pour la base de données clonée :

gcloud firestore databases clone \
--source-database='projects/example-project/databases/example-source-db' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db' \
--encryption-type='customer-managed-encryption' \
--kms-key-name='projects/example-project/locations/us-central1/keyRings/example-key-ring/cryptoKeys/example-key'

CLI Firebase

Utilisez la commande firebase firestore:databases:clone pour cloner une base de données :

firebase firestore:databases:clone \
'SOURCE_DATABASE' \
'DESTINATION_DATABASE' \
--snapshot-time 'PITR_TIMESTAMP' \

Remplacez les éléments suivants :

  • SOURCE_DATABASE : nom de base de données d'une base de données existante que vous souhaitez cloner. Le nom utilise le format projects/PROJECT_ID/databases/SOURCE_DATABASE_ID.

  • DESTINATION_DATABASE : nom de base de données pour une nouvelle base de données clonée. Le nom utilise le format projects/PROJECT_ID/databases/DESTINATION_DATABASE_ID. Ce nom de base de données ne doit pas être associé à une base de données existante.

  • PITR_TIMESTAMP : code temporel de récupération à un moment précis au format RFC 3339, avec une granularité à la minute. Exemple : 2025-06-01T10:20:00.00Z ou 2025-06-01T10:30:00.00-07:00. Si aucune valeur n'est spécifiée, l'instantané choisi correspondra à l'heure actuelle, arrondie à la minute inférieure.

Par défaut, la base de données clonée aura la même configuration de chiffrement que la base de données source. Pour modifier la configuration de chiffrement, utilisez l'argument --encryption-type :

  • (Par défaut) USE_SOURCE_ENCRYPTION : utilise la même configuration de chiffrement que la base de données source.
  • GOOGLE_DEFAULT_ENCRYPTION : utilise le chiffrement par défaut de Google.
  • CUSTOMER_MANAGED_ENCRYPTION : utilise le chiffrement CMEK. Spécifiez un ID de clé dans l'argument --kms-key-name.

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 projet
  • EMAIL : adresse e-mail qui représente un compte 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 projet
  • EMAIL : adresse e-mail qui représente un compte 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 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

Renseignez les champs suivants :

  • PROJECT_ID : ID de votre projet
  • EMAIL : adresse e-mail qui représente un compte spécifique. Exemple : alice@example.com.

Limites

Vous pouvez avoir un maximum de 100 bases de données par projet. Vous pouvez contacter l'assistance pour demander une augmentation de cette limite.

Étape suivante