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.
Kostenlose Nutzung
Cloud Firestore bietet eine kostenlose Stufe, mit der Sie kostenlos loslegen können.
Die kostenlose Stufe gilt nur für eine Cloud Firestore-Datenbank pro Projekt. Die erste Datenbank, die in einem Projekt ohne Datenbank der kostenlosen Stufe erstellt wird, erhält die kostenlose Stufe. Wenn die Datenbank mit der kostenlosen Stufe gelöscht wird, erhält die nächste erstellte Datenbank die kostenlose Stufe.
Hinweis
Bevor Sie eine Datenbank erstellen, müssen Sie die folgenden Schritte ausführen:
-
Falls noch nicht geschehen, erstellen Sie ein Firebase-Projekt: Klicken Sie in der Firebase Console auf Projekt hinzufügen und folgen Sie der Anleitung auf dem Bildschirm, um ein Firebase-Projekt zu erstellen oder einem vorhandenen Google Cloud-Projekt Firebase-Dienste hinzuzufügen.
- Weisen Sie die entsprechenden IAM-Rollen (Identity and Access Management) zu, wie im nächsten Abschnitt beschrieben.
Erforderliche Rollen
Zum Erstellen und Verwalten von Datenbanken benötigen Sie die IAM-Rolle (Identity and Access Management) 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 klonen:
datastore.databases.clone
Datenbank erstellen
Verwenden Sie eine der folgenden Methoden, um eine Cloud Firestore-Datenbank zu erstellen:
Firebase Console
-
Rufen Sie in der Firebase Console die Seite Firestore Database auf.
- Klicken Sie auf Datenbank hinzufügen.
- Wählen Sie Enterprise-Version aus. Klicken Sie auf Weiter.
- Wählen Sie Firestore im nativen Modus aus.
- Geben Sie eine Datenbank-ID ein.
- Wählen Sie einen Standort für Ihre Datenbank aus. Klicken Sie auf Weiter.
- Wählen Sie aus, ob Echtzeitaktualisierungen aktiviert oder deaktiviert werden sollen.
Mit Echtzeitaktualisierungen kann Ihre Datenbank
onSnapshotListener unterstützen. Diese Funktion ist für Enterprise-Datenbanken im nativen Modus standardmäßig aktiviert. -
Wähle einen Startmodus für dein Cloud Firestore Security Rules aus:
- Testmodus
- Gut für den Einstieg in die Mobil- und Web-Clientbibliotheken, aber jeder kann Ihre Daten lesen und überschreiben. Nach dem Testen sollten Sie den Abschnitt Daten schützen lesen.
- Produktionsmodus
- Verweigert alle Lese- und Schreibvorgänge von Mobil- und Webclients. Ihre authentifizierten Anwendungsserver (Node.js, Python, Java) können weiterhin auf Ihre Datenbank zugreifen.
- Klicken Sie auf Erstellen.
gcloud-CLI
Führen Sie den Befehl gcloud firestore databases create aus:
gcloud firestore databases create \ --database=DATABASE_ID \ --location=LOCATION \ --edition=enterprise \ --enable-firestore-data-access \ --enable-realtime-updates
Ersetzen Sie Folgendes:
- DATABASE_ID: eine gültige Datenbank-ID.
- LOCATION: der Name einer Cloud Firestore-Multiregion oder -Region.
Datenbank-ID
Gültige Datenbank-IDs sind IDs, die Folgendes erfüllen:
- Enthält nur Buchstaben, Ziffern 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
Verwenden Sie den Löschschutz, um das versehentliche Löschen einer Datenbank zu verhindern. Der Löschschutz funktioniert so:
- Sie können eine Datenbank mit aktiviertem Löschschutz erst löschen, wenn Sie ihn 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.
Datenbanken auflisten
Verwenden Sie eine der folgenden Methoden, um Ihre Datenbanken aufzulisten:
Firebase Console
-
Rufen Sie in der Firebase Console die Seite Firestore Database auf.
- Klicken Sie auf Cloud Firestore, um alle Datenbanken für das Projekt aufzurufen.
gcloud-CLI
Verwenden Sie den Befehl gcloud firestore databases list, um alle Datenbanken in Ihrem Projekt aufzulisten.
gcloud firestore databases list
Datenbankdetails aufrufen
Verwenden Sie eine der folgenden Methoden, um Details zu einer einzelnen Datenbank aufzurufen:
Firebase Console
-
Rufen Sie in der Firebase Console die Seite Firestore Database auf.
- Wählen Sie eine Datenbank aus der Liste der Datenbanken aus.
gcloud-CLI
Führen Sie den Befehl gcloud firestore databases describe aus:
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 Löschschutz zu ändern, zu aktivieren oder zu 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-CLI
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-CLI
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. Für das Löschen einer Datenbank fallen keine Kosten für Löschvorgänge an.
Wenn für die Datenbank die Einstellung „Löschschutz“ aktiviert ist, müssen Sie zuerst den Löschschutz deaktivieren.
Firebase Console
-
Rufen Sie in der Firebase Console die Seite Firestore Database auf.
- Wählen Sie die Datenbank aus, die Sie löschen möchten.
- Klicken Sie auf Mehr ansehen.
- Klicken Sie auf Löschen, um die Datenbank zu löschen.
gcloud-CLI
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.
Datenbank klonen
Sie können eine vorhandene Datenbank zu einem ausgewählten Zeitstempel in eine neue Datenbank klonen:
Die geklonte Datenbank ist eine neue Datenbank, die am selben Standort wie die Quelldatenbank erstellt wird.
Zum Erstellen eines Klons verwendet Cloud Firestore Daten zur Wiederherstellung zu einem bestimmten Zeitpunkt (Point-in-Time Recovery, PITR) der Quelldatenbank. Die geklonte Datenbank enthält alle Daten und Indexe.
Standardmäßig wird die geklonte Datenbank auf dieselbe Weise wie die Quelldatenbank verschlüsselt, entweder mit der Standardverschlüsselung von Google oder mit der CMEK-Verschlüsselung. Sie können einen anderen Verschlüsselungstyp angeben oder einen anderen Schlüssel für die CMEK-Verschlüsselung verwenden.
Der Zeitstempel hat eine Granularität von einer Minute und gibt einen Zeitpunkt in der Vergangenheit an, der im durch das PITR-Fenster definierten Zeitraum liegt:
- Wenn die Wiederherstellung zu einem bestimmten Zeitpunkt für Ihre Datenbank aktiviert ist, können Sie eine beliebige Minute in den letzten 7 Tagen auswählen (oder weniger, wenn die Wiederherstellung zu einem bestimmten Zeitpunkt vor weniger als 7 Tagen aktiviert wurde).
- Wenn die Wiederherstellung zu einem bestimmten Zeitpunkt nicht aktiviert ist, können Sie eine beliebige Minute in der letzten Stunde auswählen.
- Den frühesten Zeitstempel, den Sie auswählen können, finden Sie in der Beschreibung Ihrer Datenbank.
Google Cloud Console
Rufen Sie in der Google Cloud Console die Seite Datenbanken auf.
Klicken Sie in der Tabellenzeile für die Datenbank, die Sie klonen möchten, auf Mehr anzeigen. Klicken Sie auf Klonen. Das Dialogfeld Klon erstellen wird angezeigt.
Geben Sie im Dialogfeld Klon erstellen Parameter für das Klonen der Datenbank an:
Geben Sie im Feld Klon eine ID zuweisen eine Datenbank-ID für eine neue geklonte Datenbank ein. Diese Datenbank-ID darf nicht mit einer vorhandenen Datenbank verknüpft sein.
Wählen Sie im Feld Klonen von einen Zeitpunkt aus, der für das Klonen verwendet werden soll. Die ausgewählte Zeit entspricht einem PITR-Zeitstempel mit einer Granularität von einer Minute.
Klicken Sie auf Klon erstellen.
gcloud
Verwenden Sie den Befehl gcloud firestore databases clone, um eine Datenbank zu klonen:
gcloud firestore databases clone \
--source-database='SOURCE_DATABASE' \
--snapshot-time='PITR_TIMESTAMP' \
--destination-database='DESTINATION_DATABASE_ID'
Ersetzen Sie Folgendes:
SOURCE_DATABASE: der Datenbankname einer vorhandenen Datenbank, die Sie klonen möchten. Der Name hat das Format
projects/PROJECT_ID/databases/SOURCE_DATABASE_ID.PITR_TIMESTAMP: ein PITR-Zeitstempel im RFC 3339-Format mit einem Detaillierungsgrad von einer Minute. Beispiel:
2025-06-01T10:20:00.00Zoder2025-06-01T10:30:00.00-07:00.DESTINATION_DATABASE_ID: eine Datenbank-ID für eine neue geklonte Datenbank. Diese Datenbank-ID darf nicht mit einer vorhandenen Datenbank verknüpft sein.
Beispiel:
gcloud firestore databases clone \
--source-database='projects/example-project/databases/example-source-db' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db'
Wenn Sie beim Klonen einer Datenbank eine Bindung an bestimmte Tags herstellen möchten, verwenden Sie den vorherigen Befehl mit dem Flag --tags. Dies ist eine optionale Liste von KEY=VALUE-Tag-Paaren, an die eine Bindung hergestellt werden soll.
Beispiel:
gcloud firestore databases clone \
--source-database='projects/example-project/databases/(default)' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db' \
--tags=key1=value1,key2=value2
Standardmäßig hat die geklonte Datenbank dieselbe Verschlüsselungskonfiguration wie die Quelldatenbank. Verwenden Sie das Argument --encryption-type, um die Verschlüsselungskonfiguration zu ändern:
- (Standard)
use-source-encryption: Verwenden Sie dieselbe Verschlüsselungskonfiguration wie die Quelldatenbank. google-default-encryption: Verwenden Sie die Standardverschlüsselung von Google.customer-managed-encryption: CMEK-Verschlüsselung verwenden. Geben Sie im Argument--kms-key-nameeine Schlüssel-ID an.
Im folgenden Beispiel wird gezeigt, wie Sie die CMEK-Verschlüsselung für die geklonte Datenbank konfigurieren:
gcloud firestore databases clone \
--source-database='projects/example-project/databases/example-source-db' \
--snapshot-time='2025-06-01T10:20:00.00Z' \
--destination-database='example-dest-db' \
--encryption-type='customer-managed-encryption' \
--kms-key-name='projects/example-project/locations/us-central1/keyRings/example-key-ring/cryptoKeys/example-key'
Firebase CLI
Verwenden Sie den Befehl firebase firestore:databases:clone, um eine Datenbank zu klonen:
firebase firestore:databases:clone \
'SOURCE_DATABASE' \
'DESTINATION_DATABASE' \
--snapshot-time 'PITR_TIMESTAMP' \
Ersetzen Sie Folgendes:
SOURCE_DATABASE: der Datenbankname einer vorhandenen Datenbank, die Sie klonen möchten. Der Name hat das Format
projects/PROJECT_ID/databases/SOURCE_DATABASE_ID.DESTINATION_DATABASE: ein Datenbankname für eine neue geklonte Datenbank. Der Name hat das Format
projects/PROJECT_ID/databases/DESTINATION_DATABASE_ID. Dieser Datenbankname darf nicht mit einer vorhandenen Datenbank verknüpft sein.PITR_TIMESTAMP: ein PITR-Zeitstempel im RFC 3339-Format mit einem Detaillierungsgrad von einer Minute. Beispiel:
2025-06-01T10:20:00.00Zoder2025-06-01T10:30:00.00-07:00. Wenn nichts angegeben ist, wird der aktuelle Zeitpunkt als Snapshot verwendet, abgerundet auf die Minute.
Standardmäßig hat die geklonte Datenbank dieselbe Verschlüsselungskonfiguration wie die Quelldatenbank. Verwenden Sie das Argument --encryption-type, um die Verschlüsselungskonfiguration zu ändern:
- (Standard)
USE_SOURCE_ENCRYPTION: Verwenden Sie dieselbe Verschlüsselungskonfiguration wie die Quelldatenbank. GOOGLE_DEFAULT_ENCRYPTION: Verwenden Sie die Standardverschlüsselung von Google.CUSTOMER_MANAGED_ENCRYPTION: CMEK-Verschlüsselung verwenden. Geben Sie im Argument--kms-key-nameeine Schlüssel-ID an.
Datenbankbezogene Zugriffsberechtigungen konfigurieren
Mit Identity and Access Management-Bedingungen 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 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 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 Konto steht. Beispiel:alice@example.com.
Beschränkungen
Sie können maximal 100 Datenbanken pro Projekt haben. Sie können den Support kontaktieren, um eine Erhöhung dieses Limits zu beantragen.
Nächste Schritte
- Führen Sie die Kurzanleitung: Datenbank erstellen und eine Verbindung dazu herstellen aus.
- Informationen zu Verhaltensunterschieden
- Cloud Monitoring-Messwerte für Cloud Firestore