Datenbanken erstellen und 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. Mehrere Datenbanken können verwendet werden, um Produktions- und Test umgebungen einzurichten, Kundendaten zu isolieren und Daten zu regionalisieren.

Kostenlose Nutzung

Cloud Firestore bietet eine kostenlose Stufe mit der Sie gebührenfrei Ihre ersten Schritte machen 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 angewendeten kostenlosen Stufe gelöscht wird, erhält die nächste erstellte Datenbank die kostenlose Stufe.

Hinweis

Sie müssen die folgenden Schritte ausführen, bevor Sie eine Datenbank erstellen:

  1. 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 Firebase-Dienste für ein vorhandenes Google Cloud Projekt hinzuzufügen.

  2. Weisen Sie die entsprechenden IAM-Rollen zu, wie im nächsten Abschnitt beschrieben.

Erforderliche Rollen

Zum Erstellen und Verwalten von Datenbanken benötigen Sie die Owner oder Datastore Owner IAM-Rolle. 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
  1. Rufen Sie in der Firebase Console die Firestore-Datenbank Seite auf.

    Zur Seite „Firestore-Datenbank“

  2. Klicken Sie auf Datenbank hinzufügen.
  3. Wählen Sie Enterprise Edition aus. Klicken Sie auf Weiter.
  4. Wählen Sie Firestore im nativen Modus aus.
  5. Geben Sie eine Datenbank-ID ein.
  6. Wählen Sie einen Speicherort für Ihre Datenbank aus. Klicken Sie auf Weiter.
  7. Wählen Sie einen Startmodus für Ihre Cloud Firestore Security Rules aus:

    Testmodus
    Gut für die ersten Schritte mit den Mobil- und Web-Clientbibliotheken, allerdings können Ihre Daten von beliebigen Personen gelesen und überschrieben werden. Nach dem Testen sollten Sie sich den Abschnitt Daten schützen ansehen.
    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
  8. Klicken Sie auf Erstellen.
gcloud-CLI

Verwenden Sie den gcloud firestore databases create Befehl:.

gcloud firestore databases create \
--database=DATABASE_ID \
--location=LOCATION \
--edition=enterprise \
--enable-firestore-data-access \
--no-enable-mongodb-compatible-data-access \
--enable-realtime-updates

Ersetzen Sie Folgendes:

Datenbank-ID

Gültige Datenbank-IDs entsprechen den folgenden Anforderungen:

  • Sie enthalten 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 Zahl sein.
  • Mindestens 4 Zeichen.
  • Maximal 63 Zeichen.
  • Sie dürfen 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.

Löschschutz

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 den Löschschutz deaktivieren.
  • Der Löschschutz ist standardmäßig deaktiviert.
  • Sie können den Löschschutz beim Erstellen der Datenbank aktivieren oder Sie können eine Datenbankkonfiguration aktualisieren, um den Lö101schschutz zu aktivieren.

Datenbanken auflisten

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

gcloud-CLI

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

gcloud firestore databases list

Datenbankdetails ansehen

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

gcloud-CLI

Verwenden Sie den gcloud firestore databases describe Befehl:

gcloud firestore databases describe --database=DATABASE_ID

Ersetzen Sie DATABASE_ID durch eine Datenbank-ID.

Datenbankkonfiguration aktualisieren

Verwenden Sie den gcloud firestore databases update Befehl, um die Konfigurationseinstellungen einer Datenbank zu aktualisieren.

Mit diesem Befehl können Sie den Löschschutz ändern, aktivieren oder deaktivieren.

Einstellung für den Löschschutz aktualisieren

Verwenden Sie den gcloud firestore databases update Befehl mit dem --delete-protection Flag, 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 gcloud firestore databases update Befehl mit dem --no-delete-protection Flag, 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 die Console oder das Befehlszeilentool, um eine Datenbank zu löschen. Für das Löschen einer Datenbank fallen keine Gebühren an.

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

gcloud-CLI

Verwenden Sie den `gcloud firestore databases delete` Befehl.

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 Speicherort wie die Quelldatenbank erstellt wird.

    Zum Erstellen eines Klons verwendet Cloud Firestore Daten der Wiederherstellung auf einen 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, im Zeitraum, der durch das PITR-Fensterdefiniert ist:

    • Wenn PITR für Ihre Datenbank aktiviert ist, können Sie eine beliebige Minute der letzten 7 Tage auswählen (oder weniger, wenn PITR vor weniger als 7 Tagen aktiviert wurde).
    • Wenn PITR nicht aktiviert ist, können Sie eine beliebige Minute der letzten Stunde auswählen.
    • Den frühesten Zeitstempel, den Sie auswählen können, finden Sie in der Beschreibung Ihrer Datenbank.

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 klonen möchten, auf Weitere Optionen. Klicken Sie auf Klonen. Das Dialogfeld Klon erstellen wird angezeigt.

  3. Geben Sie im Dialogfeld Klon erstellen die Parameter für das Klonen der Datenbank an:

    1. 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.

    2. Wählen Sie im Feld Klonen ab einen Zeitpunkt für das Klonen aus. Die ausgewählte Zeit entspricht einem PITR-Zeitstempel mit einer Granularität von einer Minute.

  4. Klicken Sie auf Klon erstellen.

gcloud

Verwenden Sie den gcloud firestore databases clone Befehl, 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 einer Granularität von einer Minute. Beispiel: 2025-06-01T10:20:00.00Z oder 2025-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 einige Tags binden möchten, verwenden Sie den vorherigen Befehl mit dem --tags Flag. Dies ist eine optionale Liste von Tag-KEY=VALUE-Paaren, die gebunden werden sollen.

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 --encryption-type Argument, um die Verschlüsselungskonfiguration zu ändern:

  • use-source-encryption: Verwenden Sie dieselbe Verschlüsselungskonfiguration wie die Quelldatenbank.
  • google-default-encryption: Verwenden Sie die Standardverschlüsselung von Google.
  • customer-managed-encryption: Verwenden Sie die CMEK-Verschlüsselung. Geben Sie eine Schlüssel-ID im --kms-key-name Argument an.

Das folgende Beispiel zeigt, 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 firebase firestore:databases:clone Befehl, 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 einer Granularität von einer Minute. Beispiel: 2025-06-01T10:20:00.00Z oder 2025-06-01T10:30:00.00-07:00. Wenn nicht angegeben, ist der ausgewählte Snapshot die aktuelle Zeit, abgerundet auf die Minute.

Standardmäßig hat die geklonte Datenbank dieselbe Verschlüsselungskonfiguration wie die Quelldatenbank. Verwenden Sie das --encryption-type Argument, um die Verschlüsselungskonfiguration zu ändern:

  • USE_SOURCE_ENCRYPTION: Verwenden Sie dieselbe Verschlüsselungskonfiguration wie die Quelldatenbank.
  • GOOGLE_DEFAULT_ENCRYPTION: Verwenden Sie die Standardverschlüsselung von Google.
  • CUSTOMER_MANAGED_ENCRYPTION: Verwenden Sie die CMEK-Verschlüsselung. Geben Sie eine Schlüssel-ID im --kms-key-name Argument an.

Zugriffsberechtigungen pro Datenbank konfigurieren

Mit IAM-Bedingungen können Sie Zugriffsberechtigungen 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 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