Daten zwischen Projekten verschieben

Auf dieser Seite wird beschrieben, wie Sie mit den verwalteten Import- und Exportfunktionen Daten von einem Projekt in ein anderes verschieben.Cloud Firestore Dies kann hilfreich sein, um eine Entwicklungsumgebung einzurichten oder um eine Anwendung dauerhaft in ein anderes Projekt zu migrieren. Das Beispiel auf dieser Seite zeigt, wie Sie Daten aus einem Quellprojekt exportieren und dann in ein Zielprojekt importieren. Das Verschieben von Daten zwischen Projekten umfasst die folgenden Schritte:

  1. Erstellen Sie einen Cloud Storage Bucket für die Daten aus Ihrem Quellprojekt.
  2. Exportieren Sie die Daten aus Ihrem Quellprojekt in den Bucket.
  3. Geben Sie Ihrem Zielprojekt die Berechtigung zum Lesen aus dem Bucket.
  4. Importieren Sie die Daten aus dem Bucket in Ihr Zielprojekt.

Hinweise

Bevor Sie den verwalteten Export- und Importdienst verwenden können, müssen Sie die folgenden Schritte ausführen:

  1. Aktivieren Sie die Abrechnung für das Quellprojekt und das Zielprojekt. Die Export- und Importfunktionalität kann nur für Google Cloud Projekte mit aktivierter Abrechnung verwendet werden.
  2. Stellen Sie sicher, dass Ihr Konto über die erforderlichen Cloud IAM Berechtigungen in Ihrem Quellprojekt und Zielprojekt verfügt. Wenn Sie Projektinhaber für beide Projekte sind, hat Ihr Konto die erforderlichen Berechtigungen. Andernfalls gewähren die folgenden Cloud IAM-Rollen die erforderlichen Berechtigungen für Cloud Firestore Export- und Importvorgänge:

    Owner, Cloud Datastore Owner oder Cloud Datastore Import Export Admin

    Ein Projektinhaber kann eine dieser Rollen durch Ausführen der Schritte unter Zugriffsrechte erteilen zuweisen.

  3. Richten Sie das gcloud Befehlszeilentool ein und stellen Sie mit einer der folgenden Methoden eine Verbindung zu Ihrem Projekt her:

  4. Richten Sie in Ihrem neuen Projekt Indexe ein. Die zusammengesetzten Indexe sollten zwischen dem Quell- und dem Zielprojekt übereinstimmen. Indexe sollten zuerst eingerichtet werden damit nicht jedes Dokument mehrmals verarbeitet werden muss.

Daten aus dem Quellprojekt exportieren

Erstellen Sie zum Exportieren der Daten einen Cloud Storage Bucket für Ihre Cloud Firestore Exportdateien. Starten Sie dann den Exportvorgang.

Cloud Storage-Bucket erstellen

Erstellen Sie einen Cloud Storage Bucket am selben Standort wie Ihre Cloud Firestore Datenbank. Den Speicherort Ihrer Datenbank finden Sie unter Bucket-Standorte. Einen Bucket mit der Funktion „Sender bezahlt“ oder einen Rapid-Bucket können Sie nicht für Export- und Importvorgänge verwenden.

Wenn sich Ihr Cloud Storage Bucket nicht in Ihrem Quellprojekt befindet, müssen Sie dem Standarddienstkonto des Quellprojekts Zugriff auf den Bucket gewähren. Zu jedem Google Cloud Projekt gehört ein automatisch erstelltes Standarddienstkonto mit dem Namen PROJECT_ID@appspot.gserviceaccount.com. Cloud Firestore Exportvorgänge autorisieren mit diesem Standarddienstkonto die Cloud Storage Bucket-Vorgänge. Um dem Standarddienstkonto Zugriff auf Ihren Quell-Bucket zu gewähren, weisen Sie ihm die Storage Admin Rolle zu.

Sie können diese Rolle mit dem gsutil Tool gewähren, das in Cloud Shell verfügbar ist:

Starten Cloud Shell

gsutil iam ch serviceAccount:[service-PROJECT_NUMBER]@gcp-sa-firestore.iam.gserviceaccount.com :roles/storage.admin\
gs://[BUCKET_NAME]@

Sie können diese Rolle auch in der Google Cloud Konsolegewähren.

Schreibvorgänge deaktivieren (optional)

Wenn Ihre Anwendung während des Exports weiterhin in Ihre Datenbank schreibt, erfassen Sie möglicherweise nicht alle Schreibvorgänge in Ihren Exportdateien. Um Daten aus einem konsistenten Zustand zu exportieren, deaktivieren Sie Schreibvorgänge in Ihrer Datenbank, indem Sie Ihre Sicherheitsregeln aktualisieren und alle Admin SDK-Vorgänge anhalten.

  1. Sicherheitsregeln aktualisieren

    Wechseln Sie in der Firebase Console zur Datenbanken und Speicher > Firestore > Regeln-Registerkarte.

    Ändern Sie die Sicherheitsregeln Ihres Quellprojekts so, dass alle Schreibvorgänge abgelehnt werden. Beispiel:

      // Deny write access to all users under any conditions
      service cloud.firestore {
        match /databases/{database}/documents {
          match /{document=**} {
            allow write: if false;
          }
          // Reads do not affect export operations
          // Add your read rules here
        }
      }
    
  2. Schreibvorgänge von Admin SDKs anhalten

    Sicherheitsregeln verhindern keine Schreibvorgänge aus privilegierten Serverumgebungen, die mit einem Firebase Admin SDK oder einer Google Cloud Server-Clientbibliothek erstellt wurden. Halten Sie Schreibvorgänge von Ihren Admin-Servern an, indem Sie Ihre Server herunterfahren oder aktualisieren.

Exportvorgang starten

Verwenden Sie den Befehl gcloud firestore export, um Daten aus Ihrem Quellprojekt zu exportieren. Sie können alle Ihre Daten oder nur bestimmte Sammlungsgruppen exportieren. Ersetzen Sie [SOURCE_BUCKET] durch den Namen Ihres Cloud Storage Buckets:

Alle Daten exportieren
gcloud firestore export gs://[SOURCE_BUCKET] --async
Bestimmte Sammlungsgruppen exportieren
gcloud firestore export gs://[SOURCE_BUCKET] --collection-ids=[COLLECTION_GROUP_ID_1],[COLLECTION_GROUP_ID_2] --async

Notieren Sie sich das outputURIPrefix des Exportvorgangs, da Sie es später noch benötigen. Standardmäßig fügt Cloud Firestore Ihren Export dateien ein Präfix basierend auf einem Zeitstempel hinzu:

outputUriPrefix: gs://[SOURCE_BUCKET]/2019-03-05T20:58:23_56418

Bei der Ausführung des Exports können Sie mit dem Befehl firestore operations list den Fortschritt des Vorgangs aufrufen:

gcloud firestore operations list

Daten in das Zielprojekt importieren

Als Nächstes gewähren Sie dem Zielprojekt Zugriff auf Ihre Cloud Firestore Datendateien und starten dann den Importvorgang.

Zielprojekt Zugriff auf Datendateien gewähren

Bevor Sie einen Importvorgang starten, müssen Sie dafür sorgen, dass Ihr Zielprojekt auf Ihre Cloud Firestore Datendateien zugreifen kann.

Datendateien in einen lokalen Bucket verschieben

Wenn sich der Speicherort Ihres Quell-Buckets vom Cloud Firestore Speicherort Ihres Zielprojekts unterscheidet, müssen Sie Ihre Datendateien an denselben Speicherort wie Ihr Zielprojekt in einen Cloud Storage Bucket verschieben.

Verschieben Sie Ihre Datendateien in einen anderen Cloud Storage Bucket, indem Sie die Schritte unter Buckets verschieben und umbenennen ausführen. Verwenden Sie diesen neuen Bucket für alle folgenden Schritte als [SOURCE_BUCKET].

Dem Projektdienstkonto Zugriff auf Ihren Quell-Bucket geben

Wenn sich der Quell-Bucket nicht im Zielprojekt befindet, müssen Sie dem Standarddienstkonto des Zielprojekts Zugriff auf den Quell-Bucket gewähren. Das Standarddienstkonto heißt [DESTINATION_PROJECT_ID]@appspot.gserviceaccount.com. Um dem Standarddienstkonto Zugriff auf Ihren Quell-Bucket zu gewähren, erteilen Sie ihm die entsprechenden Berechtigungen für den Zugriff auf den Bucket.

Sie können die erforderlichen Rollen mit dem gsutil Tool gewähren, das in Cloud Shell verfügbar ist:

Starten Cloud Shell

gsutil iam ch serviceAccount:[DESTINATION_PROJECT_ID]@appspot.gserviceaccount.com:legacyBucketReader,legacyObjectReader \
gs://[SOURCE_BUCKET]

Sie können diese Rolle auch in der Google Cloud Konsolegewähren.

Importvorgang starten

Stellen Sie vor dem Starten des Importvorgangs sicher, dass gcloud für das richtige Projekt konfiguriert ist:

gcloud config set project [DESTINATION_PROJECT_ID]

Verwenden Sie den Befehl gcloud firestore import, um die Daten in Ihrem Quell-Bucket in Ihr Zielprojekt zu importieren:

gcloud firestore import gs://[SOURCE_BUCKET]/[EXPORT_PREFIX] --async

Hierbei steht [EXPORT_PREFIX] für das Präfix im outputUriPrefix des Exports. Beispiel:

gcloud firestore import gs://[SOURCE_BUCKET]/2019-03-05T20:58:23_56418 --async

Bei der Ausführung des Exports können Sie mit dem Befehl firestore operations list den Fortschritt den Vorgangs aufrufen:

gcloud firestore operations list

Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.

Zuletzt aktualisiert: 2026-05-31 (UTC).