Datenbanken erstellen und verwalten

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

Die (default)-Datenbank

Wenn für Ihre App keine mehreren Datenbanken erforderlich sind, verwenden Sie die (default)-Datenbank.

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

Sie können das kostenlose Kontingent nur mit der (default)-Datenbank verwenden.

Erforderliche Rollen

Zum Erstellen und Verwalten von Datenbanken benötigen Sie die 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:

  • Erstellen Sie eine Datenbank: 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 Google Cloud Console die Seite Datenbanken auf.

    Zur Seite „Datenbanken“

  2. Klicken Sie auf Datenbank erstellen.
  3. Wählen Sie einen Datenbankmodus aus. Klicken Sie auf Weiter.
  4. Konfigurieren Sie Ihre Datenbank. Geben Sie eine Datenbank-ID ein. Wählen Sie einen Standort aus. Wählen Sie Sicherheitsregeln für mobile und Web-Clients 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, mit dem der Löschschutz aktiviert wird. Sie können eine Datenbank mit aktiviertem Löschschutz erst löschen, wenn Sie diese Einstellung deaktivieren. Diese Einstellung ist standardmäßig deaktiviert.

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

Ersetzen Sie Folgendes:

--delete-protection ist ein optionales Argument, um den Löschschutz zu aktivieren. 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 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, mit dem der Löschschutz aktiviert wird. 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:

  • Enthält nur Buchstaben, Zahlen und Bindestriche (-).
  • 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 5 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 eine Datenbankkonfiguration aktualisieren, um den Löschschutz zu aktivieren.

Firestore-Sicherheitsregeln für Ihre Datenbanken einrichten

Verwenden Sie die Firebase CLI, um Firestore-Sicherheitsregeln für jede Ihrer Datenbanken bereitzustellen. Weitere Informationen finden Sie im Leitfaden zum Verwalten und Bereitstellen von Firestore-Sicherheitsregeln.

Mit einer Clientbibliothek auf eine benannte Datenbank zugreifen

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

Datenbanken auflisten

Sie haben folgende Möglichkeiten, 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

So rufen Sie Details zu einer einzelnen Datenbank auf:

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 Datenbanktyp ändern oder den Löschschutz aktivieren oder deaktivieren.

Datenbanktyp ändern

Verwenden Sie den Befehl gcloud firestore databases update mit dem Flag --type=, um den Typ einer Datenbank zu aktualisieren. Sie können den Typ nur ändern, wenn die Datenbank leer ist.

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

Ersetzen Sie Folgendes:

  • DATABASE_ID: eine Datenbank-ID.
  • DATABASE_TYPE: entweder firestore-native für den nativen Modus oder datastore-mode für den Datastore-Modus.

Einstellung für den Löschschutz 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.

Verwenden Sie den Befehl gcloud firestore databases update mit dem Flag --no-delete-protection, um den Löschschutz für eine Datenbank zu deaktivieren. 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 die Console oder das Befehlszeilentool, um eine Datenbank zu löschen.

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 nicht automatisch alle Eventarc-Trigger für diese Datenbank gelöscht. Der Trigger sendet keine Ereignisse mehr, bleibt aber bestehen, bis Sie ihn löschen.

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

    Zur Seite „Datenbanken“

  2. Klicken Sie in der Tabellenzeile für die Datenbank, die Sie löschen möchten, auf  Mehr anzeigen. Klicken Sie auf Löschen. Ein Dialogfeld wird angezeigt.
  3. Bestätigen Sie im Dialogfeld Datenbank löschen? den Löschvorgang, indem Sie die Datenbank-ID in das Textfeld eingeben. Klicken Sie auf Löschen. In der Console wird angezeigt, ob der Vorgang erfolgreich war oder fehlgeschlagen ist.

    Wenn der Vorgang fehlschlägt, rufen Sie die Datenbankdetails auf und prüfen Sie, ob der Löschschutz deaktiviert ist. Informationen zum Deaktivieren des Löschschutzes finden Sie unter Einstellung für den Löschschutz aktualisieren.

gcloud

Verwenden Sie den Befehl gcloud firestore databases delete.

gcloud firestore databases delete --database=DATABASE_ID

Ersetzen Sie DATABASE_ID durch die ID der Datenbank, die gelöscht werden soll.

Zugriffsberechtigungen pro Datenbank konfigurieren

Mit Bedingungen für die Identitäts- und Zugriffsverwaltung können Sie Zugriffsberechtigungen auf Datenbankebene konfigurieren. In den folgenden Beispielen wird die Google Cloud CLI verwendet, um einer oder mehreren Datenbanken bedingten Zugriff zuzuweisen. Sie können IAM-Bedingungen auch 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

Firestore-Messwerte werden unter zwei überwachten Ressourcen erfasst.

In firestore.googleapis.com/Database finden Sie zusammengefasste Messwerte auf Datenbankebene. Die unter firestore_instance aufgeführten 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 die (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-Suchdaten gelöscht haben, kann es eine Wartezeit geben, bis Sie die Datenbank löschen können.
  • 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 in der Google Cloud Console die folgende GQL-Abfrage ausführen: SELECT * FROM __BlobInfo__.
  • Sie können eine Datenbank-ID erst nach 5 Minuten nach dem Löschen wiederverwenden.
  • Cloud Functions v1 unterstützt keine benannten Firestore-Datenbanken. Verwenden Sie Cloud Firestore-Trigger (2. Generation), um Ereignisse für benannte Datenbanken zu konfigurieren.
  • Firestore-Funktionstrigger der Version 1 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