Datenbanken verwalten

Auf dieser Seite wird beschrieben, wie Sie Cloud Firestore-Datenbanken erstellen, aktualisieren und löschen. Sie können pro Projekt mehrere Cloud 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 Ihre App nicht mehrere Datenbanken erfordert, verwenden Sie 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.

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

Erforderliche Rollen

Zum Erstellen und Verwalten von Datenbanken benötigen Sie die Rolle „Identitäts- und Zugriffsverwaltung“ Owner oder Datastore Owner . Diese Rollen gewähren die erforderlichen Berechtigungen.

Erforderliche Berechtigungen

Um Datenbanken zu verwalten, benötigen Sie folgende Berechtigungen:

  • Erstellen Sie eine Datenbank: datastore.databases.create
  • Datenbankkonfiguration lesen: datastore.databases.getMetadata
  • Konfigurieren Sie eine Datenbank: datastore.databases.update
  • Löschen Sie eine Datenbank: datastore.databases.delete

Erstellen Sie eine Datenbank

Um eine Datenbank zu erstellen, verwenden Sie eine der folgenden Methoden:

Konsole
  1. Gehen Sie in der Google Cloud Platform Console zur Seite „Datenbanken“ .

    Gehen Sie zu Datenbanken

  2. Klicken Sie auf Datenbank erstellen .
  3. Wählen Sie einen Datenbankmodus. Klicken Sie auf Weiter
  4. Konfigurieren Sie Ihre Datenbank. Geben Sie eine Datenbank-ID ein. Wähle einen Ort. Klicken Sie auf Datenbank erstellen .
gcloud

Verwenden Sie den Befehl gcloud alpha firestore databases create .

gcloud alpha 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.

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

Zu den gültigen Datenbank-IDs gehören (default) und IDs, die den folgenden Anforderungen entsprechen:

  • Enthält nur Buchstaben, Zahlen und Bindestriche ( - ).
  • Buchstaben müssen kleingeschrieben sein.
  • Das erste Zeichen muss ein Buchstabe sein.
  • Das letzte Zeichen muss ein Buchstabe oder eine Zahl 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 wieder verwenden.

Schutz löschen

Verwenden Sie den Löschschutz, um ein versehentliches Löschen einer Datenbank zu verhindern. 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 aktivieren, wenn Sie die Datenbank erstellen, oder Sie können eine Datenbankkonfiguration aktualisieren , um den Löschschutz zu aktivieren.

Richten Sie Cloud Firestore-Sicherheitsregeln für Ihre Datenbanken ein

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

Greifen Sie mit einer Clientbibliothek auf eine benannte Datenbank zu

Eine benannte Datenbank umfasst alle nicht benannten Datenbanken (default) . Standardmäßig stellen die Firebase SDKs und Google API-Clientbibliotheken eine Verbindung zur (default) Cloud Firestore-Datenbank in einem Projekt her. Um einen Client zu erstellen, der mit einer benannten Datenbank verbunden ist, legen Sie die Datenbank-ID fest, wenn Sie einen Client instanziieren.

Datenbanken auflisten

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

Konsole

Gehen Sie in der Google Cloud Platform Console zur Seite „Datenbanken“ .

Gehen Sie zu Datenbanken

gcloud

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

gcloud firestore databases list

Datenbankdetails anzeigen

Um Details zu einer einzelnen Datenbank anzuzeigen, verwenden Sie den Befehl gcloud firestore databases describe :

gcloud
gcloud firestore databases describe --database=DATABASE_ID

Ersetzen Sie DATABASE_ID durch eine Datenbank-ID.

Datenbankkonfiguration aktualisieren

Um die Konfigurationseinstellungen einer Datenbank zu aktualisieren, verwenden Sie den Befehl gcloud alpha firestore databases update . Verwenden Sie diesen Befehl, um den Löschschutz zu aktivieren oder zu deaktivieren.

Aktualisieren Sie die Löschschutzeinstellung

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

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

Ersetzen Sie DATABASE_ID durch eine Datenbank-ID.

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

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

Ersetzen Sie DATABASE_ID durch eine Datenbank-ID.

Löschen Sie eine Datenbank

Um eine Datenbank zu löschen, verwenden Sie die Konsole oder das Befehlszeilentool.

Wenn für die Datenbank die Löschschutzeinstellung aktiviert ist, müssen Sie zunächst den Löschschutz deaktivieren .

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

Durch das Löschen einer Datenbank werden nicht automatisch alle Eventarc-Trigger für diese Datenbank gelöscht. Der Auslöser liefert keine Ereignisse mehr, bleibt jedoch bestehen, bis Sie den Auslöser löschen .

Konsole
  1. Gehen Sie in der Google Cloud Platform Console zur Seite „Datenbanken“ .

    Gehen Sie zu Datenbanken

  2. Klicken Sie in der Tabellenzeile für die Datenbank, die Sie löschen möchten, auf View more . Klicken Sie auf Löschen . Es erscheint ein Dialog.
  3. In der Datenbank löschen? Bestätigen Sie im Dialogfenster den Löschvorgang, indem Sie die Datenbank-ID in das Textfeld eingeben. Klicken Sie auf Löschen . Die Konsole informiert Sie über den Erfolg oder Misserfolg des Vorgangs.

    Wenn der Vorgang fehlschlägt, sehen Sie sich die Datenbankdetails an und stellen Sie sicher, dass der Löschschutz deaktiviert ist. Informationen zum Deaktivieren des Löschschutzes finden Sie unter Aktualisieren der Löschschutzeinstellung .

gcloud

Verwenden Sie den Befehl „gcloud alpha firestore Databases delete“ .

gcloud alpha firestore databases delete --database=DATABASE_ID

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

Konfigurieren Sie Zugriffsberechtigungen pro Datenbank

Sie können Identity and Access Management Conditions verwenden, um Zugriffsberechtigungen auf Datenbankebene zu konfigurieren. In den folgenden Beispielen wird die Google Cloud CLI verwendet, um bedingten Zugriff für eine oder mehrere Datenbanken zuzuweisen. Sie können IAM-Bedingungen auch in der GCP Console definieren .

Sehen Sie sich vorhandene IAM-Richtlinien an

gcloud projects get-iam-policy PROJECT_ID

Setzen Sie PROJECT_ID auf Ihre Projekt-ID.

Gewähren Sie Zugriff auf eine Datenbank

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'

Stellen Sie Folgendes ein:

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

Gewähren Sie Zugriff auf alle bis auf eine Datenbank

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'

Stellen Sie Folgendes ein:

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

Entfernen Sie Richtlinien für ein bestimmtes Mitglied und eine bestimmte Rolle

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

Stellen Sie Folgendes ein:

  • PROJECT_ID : Ihre Projekt-ID
  • EMAIL : eine E-Mail-Adresse, die ein bestimmtes Google-Konto repräsentiert. Zum Beispiel alice@example.com .

Cloud-Überwachung

Cloud Firestore-Metriken werden unter zwei überwachten Ressourcen gemeldet.

Sie können aggregierte Metriken auf Datenbankebene überprüfen, indem Sie sich firestore.googleapis.com/Database ansehen. Die unter firestore_instance gemeldeten Metriken werden auf Projektebene aggregiert.

Einschränkungen

Was kommt als nächstes