Datenbanken verwalten

Auf dieser Seite wird beschrieben, wie Sie Cloud Firestore-Datenbanken erstellen, aktualisieren und löschen. Sie können mehrere Cloud Firestore-Datenbanken pro Projekt erstellen. Sie können mehrere Datenbanken verwenden, um Produktions- und Testumgebungen einzurichten, Kundendaten zu isolieren und Daten zu regionalisieren.

Die (default)-Datenbank

Wenn Sie keine Datenbank angeben, stellen die Cloud Firestore-Clientbibliotheken und die Google Cloud CLI standardmäßig eine Verbindung zur (default)-Datenbank her.

Erforderliche Rollen

Zum Erstellen und Verwalten von Datenbanken benötigen Sie Identity and Access Management-Rolle Owner oder Datastore Owner. Diese Rollen gewähren die erforderlichen Berechtigungen.

Erforderliche Berechtigungen

Zum Verwalten von Datenbanken benötigen Sie die folgenden Berechtigungen:

  • Datenbank erstellen: datastore.databases.create
  • Datenbankkonfiguration lesen: datastore.databases.getMetadata
  • Datenbank konfigurieren: datastore.databases.update
  • Datenbank löschen: datastore.databases.delete

Datenbank erstellen

Verwenden Sie eine der folgenden Methoden, um eine Datenbank zu erstellen:

Console
  1. Rufen Sie in der Firebase-Konsole die Seite Firestore-Datenbank auf.

    Zur Firestore-Datenbank

  2. Wenn dies Ihre erste benannte Datenbank ist, klicken Sie auf Datenbank hinzufügen.
  3. Klicken Sie andernfalls auf (Standard) und dann auf Datenbank hinzufügen.
  4. Konfigurieren Sie Ihre Datenbank. Geben Sie eine Datenbank-ID ein. Wählen Sie eine Zielregion aus. Klicken Sie auf Datenbank erstellen.
gcloud

Führen Sie den gcloud firestore databases create-Befehl aus.

gcloud firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--type=DATABASE_TYPE \
[--delete-protection]

Ersetzen Sie Folgendes:

--delete-protection ist ein optionales Flag zum Aktivieren des Löschschutzes. Sie können eine Datenbank mit aktiviertem Löschschutz erst löschen, wenn Sie diese Einstellung deaktivieren. Diese Einstellung ist standardmäßig deaktiviert.

Verwenden Sie das Flag --tags, um der Datenbank Tags hinzuzufügen. Beispiel:

  • --tags=123/environment=production,123/costCenter=marketing
  • --tags=tagKeys/333=tagValues/444
Firebase CLI
firebase firestore:databases:create DATABASE_ID \
--location=LOCATION \
[--delete-protection DELETE_PROTECTION_ENABLEMENT]

Ersetzen Sie Folgendes:

--delete-protection ist ein optionales Argument zum Aktivieren des Löschschutzes. Sie können eine Datenbank mit aktiviertem Löschschutz erst löschen, wenn Sie diese Einstellung deaktivieren. Diese Einstellung ist standardmäßig deaktiviert.

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
}

Ersetzen Sie Folgendes:

  • DATABASE_ID: eine gültige Datenbank-ID.
  • LOCATION: Der Name einer Cloud Firestore-Multiregion oder ‑Region.
  • DATABASE_TYPE: entweder FIRESTORE_NATIVE für den nativen Modus oder DATASTORE_MODE für den Datastore-Modus.
  • DELETE_PROTECTION_ENABLEMENT: entweder DELETE_PROTECTION_ENABLED oder DELETE_PROTECTION_DISABLED.

delete_protection_state ist ein optionales Argument zum Aktivieren des Löschschutzes. Sie können eine Datenbank mit aktiviertem Löschschutz erst löschen, wenn Sie diese Einstellung deaktivieren. Diese Einstellung ist standardmäßig deaktiviert.

Datenbank-ID

Gültige Datenbank-IDs sind (default) und IDs, die den folgenden Anforderungen entsprechen:

  • Darf nur Buchstaben, Zahlen und Bindestriche (-) enthalten.
  • Buchstaben müssen Kleinbuchstaben sein.
  • Das erste Zeichen muss ein Buchstabe sein.
  • Das letzte Zeichen muss ein Buchstabe oder eine Ziffer sein.
  • Mindestens 4 Zeichen.
  • Maximal 63 Zeichen.
  • Darf keine UUID sein oder einer UUID ähneln. Verwenden Sie beispielsweise keine ID wie f47ac10b-58cc-0372-8567-0e02b2c3d479.

Wenn Sie eine Datenbank löschen, können Sie die Datenbank-ID erst nach fünf Minuten wiederverwenden.

Schutz löschen

Mit dem Löschschutz können Sie verhindern, dass eine Datenbank versehentlich gelöscht wird. Sie können eine Datenbank mit aktiviertem Löschschutz erst löschen, wenn Sie den Löschschutz deaktivieren. Der Löschschutz ist standardmäßig deaktiviert. Sie können den Löschschutz beim Erstellen der Datenbank aktivieren oder die Datenbankkonfiguration aktualisieren, um den Löschschutz zu aktivieren.

Cloud Firestore Security Rules für Ihre Datenbanken einrichten

Verwenden Sie die Firebase CLI, um Cloud Firestore Security Rules in jeder Ihrer Datenbanken bereitzustellen. Weitere Informationen finden Sie in der Anleitung zum Verwalten und Bereitstellen von Cloud Firestore Security Rules.

Mit einer Clientbibliothek auf eine benannte Datenbank zugreifen

Eine benannte Datenbank ist jede Datenbank, die nicht (default) heißt. Standardmäßig stellen die Firebase-SDKs und Google API-Clientbibliotheken eine Verbindung zur Datenbank (default) Cloud Firestore in einem Projekt her. Wenn Sie einen Client erstellen möchten, der mit einer benannten Datenbank verbunden ist, legen Sie beim Instanziieren eines Clients die Datenbank-ID fest.

Datenbanken auflisten

Verwenden Sie eine der folgenden Methoden, um Ihre Datenbanken aufzulisten:

Console

Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.

Zur Seite „Datenbanken“

gcloud

Verwenden Sie den Befehl gcloud firestore databases list, um alle Datenbanken in Ihrem Projekt aufzulisten.

gcloud firestore databases list
Firebase CLI

Verwenden Sie den Befehl firebase firestore:databases:list, um alle Datenbanken in Ihrem Projekt aufzulisten.

firebase firestore:databases:list

Datenbankdetails ansehen

Verwenden Sie eine der folgenden Methoden, um Details zu einer einzelnen Datenbank aufzurufen:

gcloud

Führen Sie den Befehl gcloud firestore databases describe aus:

gcloud firestore databases describe --database=DATABASE_ID
Firebase CLI

Führen Sie den Befehl firebase firestore:databases:get aus:

firebase firestore:databases:get DATABASE_ID

Ersetzen Sie DATABASE_ID durch eine Datenbank-ID.

Datenbankkonfiguration aktualisieren

Verwenden Sie den Befehl gcloud firestore databases update, um die Konfigurationseinstellungen einer Datenbank zu aktualisieren. Mit diesem Befehl können Sie den Löschschutz aktivieren oder deaktivieren.

Löschschutzeinstellung aktualisieren

Verwenden Sie den Befehl gcloud firestore databases update mit dem Flag --delete-protection, um den Löschschutz für eine Datenbank zu aktivieren. Beispiel:

gcloud
gcloud firestore databases update --database=DATABASE_ID --delete-protection

Ersetzen Sie DATABASE_ID durch eine Datenbank-ID.

Wenn Sie den Löschschutz für eine Datenbank deaktivieren möchten, verwenden Sie den Befehl gcloud firestore databases update mit dem Flag --no-delete-protection. Beispiel:

gcloud
gcloud firestore databases update --database=DATABASE_ID --no-delete-protection

Ersetzen Sie DATABASE_ID durch eine Datenbank-ID.

Datenbank löschen

Verwenden Sie zum Löschen einer Datenbank die Console oder das Befehlszeilentool.

Wenn für die Datenbank der Löschschutz aktiviert ist, müssen Sie ihn zuerst deaktivieren.

Wenn die Datenbank App Engine-Suchdaten oder Blob-Entitäten enthält, müssen Sie diese Daten zuerst löschen.

Wenn Sie eine Datenbank löschen, werden keine Eventarc-Trigger für diese Datenbank automatisch gelöscht. Der Trigger sendet keine Ereignisse mehr, bleibt aber bestehen, bis Sie ihn löschen.

Für das Löschen einer Datenbank fallen keine Gebühren für Löschvorgänge an.

Console
  1. Rufen Sie in der Firebase-Konsole die Seite Firestore-Datenbank auf.

    Zur Firestore-Datenbank

  2. Klicken Sie auf dem Tab „Daten“ über der Datenansicht für die Datenbank auf  und wählen Sie dann Datenbank löschen aus.
  3. Folgen Sie der Anleitung, um die Datenbank zu löschen.
gcloud

Verwenden Sie den Befehl `gcloud firestore databases delete`.

gcloud firestore databases delete --database=DATABASE_ID

Ersetzen Sie DATABASE_ID durch die ID der zu löschenden Datenbank.

Zugriffsberechtigungen für einzelne Datenbanken konfigurieren

Mit IAM-Bedingungen können Sie Zugriffsrechte auf Datenbankebene konfigurieren. In den folgenden Beispielen wird die Google Cloud CLI verwendet, um bedingten Zugriff für eine oder mehrere Datenbanken zuzuweisen. Sie können auch IAM-Bedingungen in der Google Cloud Console definieren.

Vorhandene IAM-Richtlinien ansehen

gcloud projects get-iam-policy PROJECT_ID

Legen Sie PROJECT_ID auf Ihre Projekt-ID fest.

Zugriff auf eine Datenbank gewähren

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'

Legen Sie Folgendes fest:

  • PROJECT_ID: Ihre Projekt-ID
  • EMAIL: eine E-Mail-Adresse, die für ein bestimmtes Google-Konto steht. Beispiel: alice@example.com.
  • DATABASE_ID: eine Datenbank-ID.
  • TITLE: Ein optionaler Titel für den Ausdruck.
  • DESCRIPTION: eine optionale Beschreibung des Ausdrucks.

Zugriff auf alle Datenbanken außer einer gewähren

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'

Legen Sie Folgendes fest:

  • PROJECT_ID: Ihre Projekt-ID
  • EMAIL: eine E-Mail-Adresse, die für ein bestimmtes Google-Konto steht. Beispiel: alice@example.com.
  • DATABASE_ID: eine Datenbank-ID.
  • TITLE: Ein optionaler Titel für den Ausdruck.
  • DESCRIPTION: eine optionale Beschreibung des Ausdrucks.

Richtlinien für ein bestimmtes Mitglied und eine bestimmte Rolle entfernen

gcloud projects remove-iam-policy-binding PROJECT_ID \
--member='user:EMAIL' \
--role='roles/datastore.user' --all

Legen Sie Folgendes fest:

  • PROJECT_ID: Ihre Projekt-ID
  • EMAIL: eine E-Mail-Adresse, die für ein bestimmtes Google-Konto steht. Beispiel: alice@example.com.

Cloud Monitoring

Cloud Firestore-Messwerte werden für zwei überwachte Ressourcen erfasst.

Sie können sich aggregierte Messwerte auf Datenbankebene ansehen, indem Sie firestore.googleapis.com/Database aufrufen. Die unter firestore_instance gemeldeten Messwerte werden auf Projektebene zusammengefasst.

Beschränkungen

  • Pro Projekt können maximal 100 Datenbanken verwendet werden. Sie können den Support kontaktieren, um eine Erhöhung dieses Limits zu beantragen.
  • Sie können Ihre (default)-Datenbank nicht löschen, wenn sie GAE-Suchdaten enthält. Verwenden Sie die Index Delete API, um GAE-Suchdaten zu löschen. Wenn Sie vor Kurzem GAE Search-Daten gelöscht haben, kann es sein, dass Sie mit dem Löschen der Datenbank warten müssen.
  • Sie können Ihre (default)-Datenbank nicht löschen, wenn sie Blob-Entitäten enthält. Verwenden Sie die Blobstore Delete API, um Blobstore-Daten zu löschen. Sie können prüfen, ob Ihre (default)-Datenbank Blobstore-Daten enthält, indem Sie die folgende GQL-Abfrage in der Google Cloud Console ausführen: SELECT * FROM __BlobInfo__.
  • Sie können eine Datenbank-ID erst 5 Minuten nach dem Löschen wiederverwenden.
  • Cloud Function v1 unterstützt keine benannten Firestore-Datenbanken. Verwenden Sie Cloud Firestore-Trigger (2. Generation), um Ereignisse für benannte Datenbanken zu konfigurieren.
  • Firestore-Funktionstrigger V1 und Firestore-Ereignistrigger funktionieren möglicherweise nicht mehr, nachdem die Datenbank gelöscht wurde, auch wenn eine neue Datenbank mit demselben Namen erstellt wird.

Nächste Schritte