Datenbanken erstellen und verwalten
Auf dieser Seite wird beschrieben, wie Firestore-Datenbanken erstellt, aktualisiert und gelöscht werden. Sie können pro Projekt mehrere Firestore-Datenbanken erstellen. Sie können mehrere Datenbanken verwenden, um Produktions- und Testumgebungen einzurichten, Kundendaten zu isolieren und die Regionalisierung von Daten durchzuführen.
Die (default)
-Datenbank
Wenn für Ihre Anwendung nicht mehrere Datenbanken erforderlich sind, verwenden Sie die Datenbank (default)
.
Wenn Sie keine Datenbank angeben, stellen die Firestore-Clientbibliotheken und die Google Cloud CLI standardmäßig eine Verbindung zur Datenbank (default)
her.
(default)
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:
- 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
-
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
- Klicken Sie auf Datenbank erstellen.
- Wählen Sie einen Datenbankmodus aus. Klicken Sie auf Weiter.
- Konfigurieren Sie Ihre Datenbank. Geben Sie eine Datenbank-ID ein. Wählen Sie einen Standort aus. Wählen Sie Sicherheitsregeln für Mobil- und Webclients 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:
- DATABASE_ID: eine gültige Datenbank-ID.
- LOCATION: der Name eines Multi-Regions oder einer Firestore-Region.
- DATABASE_TYPE: entweder
firestore-native
für den nativen Modus oder Datastore-Modus für den Datastore-Modus.
--delete-protection
ist ein optionales Flag zum Aktivieren des Löschschutzs.
Sie können eine Datenbank mit aktiviertem Löschschutz erst löschen, wenn Sie diese Einstellung deaktiviert haben. Diese Einstellung ist standardmäßig deaktiviert.
Firebase CLI
firebase firestore:databases:create DATABASE_ID \ --location=LOCATION \ [--delete-protection DELETE_PROTECTION_ENABLEMENT]
Ersetzen Sie Folgendes:
- DATABASE_ID: eine gültige Datenbank-ID.
- LOCATION: der Name einer Multiregion oder einer Firestore-Region.
- DELETE_PROTECTION_ENABLEMENT: entweder
ENABLED
oderDISABLED
.
Die erstellte Datenbank befindet sich immer im nativen Firestore-Modus.
--delete-protection
ist ein optionales Argument zum Aktivieren des Löschschutzs. Sie können eine Datenbank mit aktiviertem Löschschutz erst löschen, wenn Sie diese Einstellung deaktiviert haben. 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 Multiregion oder einer Firestore-Region.
- DATABASE_TYPE: entweder
FIRESTORE_NATIVE
für den nativen Modus oderDATASTORE_MODE
für den Datastore-Modus. - DELETE_PROTECTION_ENABLEMENT: entweder
DELETE_PROTECTION_ENABLED
oderDELETE_PROTECTION_DISABLED
.
delete_protection_state
ist ein optionales Argument zum Aktivieren des Löschschutzs. Sie können eine Datenbank mit aktiviertem Löschschutz erst löschen, wenn Sie diese Einstellung deaktiviert haben. Diese Einstellung ist standardmäßig deaktiviert.
Datenbank-ID
Gültige Datenbank-IDs sind (default)
und IDs, die den folgenden Anforderungen entsprechen:
- Darf nur Buchstaben, Ziffern und Bindestriche (
-
) enthalten. - Buchstaben müssen kleingeschrieben werden.
- Das erste Zeichen muss ein Buchstabe sein.
- Das letzte Zeichen muss ein Buchstabe oder eine Ziffer sein.
- Muss mindestens 4 Zeichen enthalten.
- Maximal 63 Zeichen.
- Darf keine UUID 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 sofort wiederverwenden.
Schutz löschen
Verwenden Sie den Löschschutz, um das versehentliche Löschen einer Datenbank zu verhindern. Sie können eine Datenbank mit aktiviertem Löschschutz erst löschen, wenn Sie den Löschenschutz deaktiviert haben. 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 in jeder 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 enthält jede Datenbank ohne den Namen (default)
. Standardmäßig stellen die Firebase SDKs und Google API-Clientbibliotheken eine Verbindung zur Firestore-Datenbank (default)
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:
Console
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
gcloud
Verwenden Sie den Befehl gcloud firestore databases list
, um alle Datenbanken in Ihrem Projekt aufzulisten.
gcloud firestore databases list
Firebase CLI
firebase firestore:databases:list
Datenbankdetails ansehen
Verwenden Sie den Befehl gcloud firestore databases describe
, um Details zu einer einzelnen Datenbank aufzurufen:
gcloud
gcloud firestore databases describe --database=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.
Verwenden Sie diesen Befehl, um den Datenbanktyp zu ändern oder den Löschschutz umzuschalten.
Datenbanktyp ändern
Verwenden Sie zum Aktualisieren des Datenbanktyps den Befehl gcloud firestore databases update
mit dem Flag --type=
. 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 oderdatastore-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 zum Löschen einer Datenbank die Console oder das Befehlszeilentool.
Wenn für die Datenbank der Löschschutz aktiviert ist, müssen Sie zuerst 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 Trigger stellt keine Ereignisse mehr bereit, bleibt aber bestehen, bis Sie den Trigger löschen.
Console
-
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
- Klicken Sie in der Tabellenzeile der Datenbank, die Sie löschen möchten, auf Mehr anzeigen. Klicken Sie auf Löschen. Ein Dialogfeld wird angezeigt.
Bestätigen Sie das Löschen im Dialogfeld Datenbank löschen?, indem Sie die Datenbank-ID in das Textfeld eingeben. Klicken Sie auf Löschen. In der Console werden Sie über den erfolgreichen oder fehlgeschlagenen Vorgang informiert.
Wenn der Vorgang fehlschlägt, rufen Sie die Datenbankdetails auf und prüfen Sie, ob der Löschenschutz deaktiviert ist. Informationen zum Deaktivieren des Löschschutzs finden Sie unter Einstellung für den Löschschutz aktualisieren.
gcloud
Verwenden Sie den Befehl `gcloudfirestore databases delete`.
gcloud firestore databases delete --database=DATABASE_ID
Ersetzen Sie DATABASE_ID durch die ID der zu löschenden Datenbank.
Zugriffsberechtigungen pro Datenbank konfigurieren
Sie können Identity and Access Management-Bedingungen verwenden, um Zugriffsberechtigungen auf Datenbankebene zu konfigurieren. In den folgenden Beispielen wird die Google Cloud CLI verwendet, um einer oder mehreren Datenbanken bedingten Zugriff 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-IDEMAIL
: 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 mit Ausnahme einer 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-IDEMAIL
: 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-IDEMAIL
: 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 gemeldet.
Sie können zusammengefasste Messwerte auf Datenbankebene prüfen, indem Sie sich firestore.googleapis.com/Database
ansehen. Die unter firestore_instance
gemeldeten Messwerte werden auf Projektebene zusammengefasst.
Beschränkungen
- Sie können maximal 100 Datenbanken pro Projekt haben. Wenden Sie sich an den Support, 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 zum Löschen von GAE-Suchdaten die API zum Löschen des Index. Wenn Sie vor Kurzem Daten aus der GAE-Suche gelöscht haben, kann es zu einer Wartezeit kommen, bevor Sie die Datenbank löschen können. - Sie können die
(default)
-Datenbank nicht löschen, wenn sie Blob-Entitäten enthält. Verwenden Sie zum Löschen von Blobstore-Daten die Blobstore delete api. Sie können prüfen, ob Ihre(default)
-Datenbank Blobstore-Daten enthält. Führen Sie dazu die folgende GPU-Abfrage in der Google Cloud Console aus: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.