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

Cette page explique comment créer, mettre à jour et supprimer Firestore les bases de données. Vous pouvez créer plusieurs bases de données Firestore par projet. Vous pouvez utiliser plusieurs bases de données pour configurer la production et les tests pour isoler les données client et pour régionaliser les données.

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 Firestore et la Google Cloud CLI se connectent par défaut à la base de données (default).

Vous pouvez utiliser le quota gratuit. qu'avec la base de données (default).

Rôles requis

Pour créer et gérer des bases de données, vous avez besoin du Owner ou de Datastore Owner Identity and Access Management. Ces rôles accordent les autorisations requises.

Autorisations requises

Pour gérer les bases de données, vous devez disposer 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
  1. Dans la console Google Cloud, accédez à la page Base de données.

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

  2. Cliquez sur Créer une base de données.
  3. Sélectionnez un mode de base de données. Cliquez sur Continuer.
  4. Configurez votre base de données. Saisissez un ID de base de données. Sélectionnez un lieu. Sélectionnez des règles de sécurité pour les clients mobiles et Web. 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 :

--delete-protection est une option facultative 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.

CLI Firebase
firebase firestore:databases:create DATABASE_ID \
--location=LOCATION \
[--delete-protection DELETE_PROTECTION_ENABLEMENT]

Remplacez les éléments suivants :

--delete-protection est un champ facultatif pour activer la protection contre la suppression. Vous ne pouvez pas supprimer une base de données avec protection contre la suppression activée jusqu'à ce que vous désactiviez 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 :

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 conformes au suivantes:

  • Ne comprend 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 ressembler à un UUID. Par exemple, n'utilisez pas un identifiant comme f47ac10b-58cc-0372-8567-0e02b2c3d479

Si vous supprimez une base de données, vous ne pouvez pas réutiliser immédiatement l'ID de la base de données avant 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 lorsque la protection contre la suppression est 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 protection contre la suppression lors de la création de la base de données, mettre à jour une configuration de base de données pour activer la protection contre la suppression.

Configurer des règles de sécurité Firestore pour vos bases de données

Utilisez la CLI Firebase pour déployer les règles de sécurité Firestore sur chacune de vos les bases de données. Consultez le guide de gestion et de déploiement des règles de sécurité 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 qui n'est pas nommée (default). Par défaut, les SDK Firebase et les bibliothèques clientes pour les API Google se connectent à (default) ; base de données 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

Pour lister vos bases de données, utilisez l'une des méthodes suivantes :

Console

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

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

gcloud

Utilisez le gcloud firestore databases list pour répertorier toutes les bases de données de votre projet.

gcloud firestore databases list
CLI Firebase

Utilisez la commande firebase firestore:databases:list pour répertorier 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 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 modifier le type de base de données ou pour activer/désactiver la protection contre la suppression.

Modifier le type de base de données

Pour mettre à jour le type d'une base de données, utilisez la méthode gcloud firestore databases update avec l'option --type=. Vous ne pouvez modifier le type que si la base de données est vide.

gcloud
gcloud firestore databases update --database=DATABASE_ID \
--type=DATABASE_TYPE

Remplacez les éléments suivants :

  • DATABASE_ID: ID de base de données.
  • DATABASE_TYPE: soit firestore-native pour le mode natif ou datastore-mode pour le mode Datastore.

Modifier le paramètre de protection contre la suppression

Pour activer la protection contre la suppression sur une base de données, utilisez la 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, exécutez 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 commencez par désactiver la protection contre la suppression.

Si la base de données contient des données de recherche App Engine ou 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 de cette base de données. La arrête la diffusion des événements, mais continue d'exister jusqu'à ce que vous supprimer le déclencheur.

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

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

  2. Cliquez sur Afficher plus dans le correspondant à la base de données que vous souhaitez supprimer. Cliquez sur Supprimer. Une boîte de dialogue s'affiche.
  3. Dans la boîte de dialogue Supprimer la base de données ?, confirmez la suppression en saisissant le dans le champ de texte. Cliquez sur Supprimer. La console vous indique si l'opération a réussi ou échoué.

    Si l'opération échoue, Afficher les détails de la base de données et vérifier que la protection contre la suppression est désactivée. Pour désactiver la protection contre la suppression, consultez Mettez à jour le paramètre de protection contre la suppression.

gcloud

Utilisez le `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 des conditions Identity and Access Management pour configurer les autorisations d'accès au niveau de chaque base de données. Les exemples suivants utilisent la Google Cloud CLI pour attribuer un accès conditionnel pour 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 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 projet
  • EMAIL : 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 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 Google spécifique. Exemple :alice@example.com

Cloud Monitoring

Les métriques 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 dans 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 une augmentation de 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 de recherche GAE, vous devrez peut-être patienter 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. Vous pouvez vérifier si votre base de données (default) contient des données Blobstore en exécutant 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 sa suppression.
  • La fonction Cloud 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.

Étape suivante