Firebase Extensions zu Funktions-Kits migrieren

In dieser Anleitung erfahren Sie, wie Sie Ihre Erweiterungen aus der verworfenen Firebase Extensions-Umgebung in ein Funktions-Kit migrieren, das Sie in Ihrer eigenen Cloud Functions-Codebasis für Firebase (2. Generation) installieren und bereitstellen können.

Firebase Extensions hat alle Aspekte des Erstellens, Aktualisierens und Entfernens von Erweiterungen verwaltet. Funktions-Kits bündeln die Funktionen von Erweiterungen als typische Cloud Functions for Firebase der 2. Generation. Da Funktions-Kits standardmäßige Cloud Functions sind, können Sie sie mit der Firebase-Befehlszeile in Ihrem Firebase-Projekt erstellen, aktualisieren, löschen und Fehler beheben. In diesem Leitfaden erfahren Sie, wie Sie Ihre Funktionen jetzt verwalten und Updates übernehmen, sobald sie verfügbar sind.

In diesem Leitfaden wird die Erweiterung Stream Cloud Firestore to BigQuery (firestore-bigquery-export) als Beispiel verwendet, um die Befehle und die Befehlsausgabe für jeden Schritt der Migration zu zeigen.

Migrationspfad festlegen

Firebase empfiehlt allen Firebase Extensions-Publishern, Ersatz für ihre Erweiterungen als Funktions-Kits zu erstellen, die auf npm veröffentlicht werden. Sie können auf verschiedene Arten prüfen, ob für Ihre Erweiterungen ein Ersatz für das Funktions-Kit verfügbar ist:

  • Rufen Sie für Ihr Projekt die Seite „Erweiterungen“ der Firebase-Konsole auf. Bei jeder installierten Erweiterung wird angegeben, ob ein Ersatz für das Funktions-Kit verfügbar ist.
  • Führen Sie firebase ext:list in Ihrem Firebase-Projekt in einem Terminal aus, um zu sehen, für welche Ihrer installierten Erweiterungen es offizielle Ersatzversionen gibt:

    firebase ext:list --project my-project
    
    i  extensions: ensuring required API firebaseextensions.googleapis.com is enabled...
    ✔  extensions: required API firebaseextensions.googleapis.com is enabled
    i  extensions: list of extensions installed in my-project:
    ┌────────────────────────────────────┬───────────┬────────────────────────────────┬────────┬─────────┬─────────────────────┬───────────────────────────────────────────────────┐
    │ Extension                          │ Publisher │ Instance ID                    │ State  │ Version │ Your last update    │ Replacement Kit                                   │
    ├────────────────────────────────────┼───────────┼────────────────────────────────┼────────┼─────────┼─────────────────────┼───────────────────────────────────────────────────┤
    │ firebase/firestore-bigquery-export │ firebase  │ firestore-bigquery-export-zbrp │ ACTIVE │ 0.3.2   │ 2026-06-10 18:35:03 │ @firebase-function-kits/firestore-bigquery-export │
    ├────────────────────────────────────┼───────────┼────────────────────────────────┼────────┼─────────┼─────────────────────┼───────────────────────────────────────────────────┤
    │ firebase/storage-resize-images     │ firebase  │ storage-resize-images          │ ACTIVE │ 0.3.6   │ 2026-06-03 17:41:24 │                                                   │
    └────────────────────────────────────┴───────────┴────────────────────────────────┴────────┴─────────┴─────────────────────┴───────────────────────────────────────────────────┘
    ⚠ Notice: Firebase Extensions will shut down on March 31, 2027. Learn more: https://firebase.google.com/docs/extensions/faq-and-troubleshooting
    

Wenn für Ihre Erweiterung ein offizieller Ersatz für das Funktions-Kit verfügbar ist, können Sie sie mithilfe des Abschnitts Zu Funktions-Kits auf npm migrieren migrieren.

Wenn Sie keinen veröffentlichten Ersatz finden, können Sie den Erweiterungscode forken und einen eigenen Ersatz erstellen, da alle Erweiterungen Open Source sind. Folgen Sie dazu der Anleitung Zu einem selbst erstellten Funktions-Kit migrieren.

Migrationspfad auswählen: Zu Funktions-Kits auf npm migrieren Zu einem selbst erstellten Funktions-Kit migrieren

Zu Funktions-Kits auf npm migrieren

Bekannte Einschränkungen bei der Migration prüfen

Bevor Sie mit der Migration einer Erweiterungsinstanz beginnen, prüfen Sie, ob in Ihrer Einrichtung eine der folgenden Funktionen verwendet wird, die eine Problemumgehung erfordern oder in Funktions-Kits noch nicht unterstützt werden:

  • Benutzerdefinierte Docker-Repositories und KMS-Schlüssel erfordern eine manuelle Problemumgehung Cloud Functions for Firebase unterstützt keine Ersatzsystemparameter für die Konfiguration eines benutzerdefinierten Docker-Repositorys oder eines kundenverwalteten Verschlüsselungsschlüssels (KMS-Schlüssel). Wenn in Ihrer Erweiterung einer dieser Parameter konfiguriert ist, finden Sie weitere Informationen im FAQ-Workaround.

Hinweis

Sie müssen die Firebase-Befehlszeile einrichten und ein Firebase-Projekt initialisieren. Wenn Sie die Befehlszeile verwenden, achten Sie darauf, dass Sie die firebase-tools-Version >= 15.32.0 verwenden, die die neuen Migrations- und Funktions-Kit-Befehle enthält.

Erforderliche Kontoberechtigungen und Rollen

Je nachdem, was während der Migration von der Firebase-Befehlszeile erstellt und konfiguriert werden muss, muss das Konto, das Sie zur Authentifizierung bei Firebase und Google Cloud verwenden, die folgenden Rollen haben:

  • roles/firebaseextensions.editor
  • roles/cloudbuild.builds.editor
  • roles/artifactregistry.writer
  • roles/run.developer
  • roles/iam.serviceAccountUser
  • roles/iam.serviceAccountCreator
  • roles/cloudfunctions.admin (wenn Sie setIamPermissions für öffentliche Endpunkte ausführen müssen)
  • roles/secretmanager.admin (falls Secrets verwendet werden)
  • roles/serviceusage.serviceUsageAdmin (wenn Sie neue APIs aktivieren müssen)

Wir empfehlen, ein Konto zu verwenden, mit dem bereits Erweiterungen installiert und Funktionen bereitgestellt wurden, da die meisten dieser Berechtigungen dann bereits gewährt wurden. Wenn Ihr Migrationskonto weitere Rollen benötigt, folgen Sie der IAM-Anleitung für Google Cloud, um sie hinzuzufügen.

CLI-Workflow auswählen

Wenn Sie von einer Erweiterungsinstanz zu einem auf npm verfügbaren Funktions-Kit migrieren möchten, wählen Sie eine der folgenden Optionen aus:

  • (Empfohlen) Migration mit dem ext:migrate-Befehlszeilenbefehl. Mit diesem Befehl wird der Ersatz für das Funktions-Kit bereitgestellt, bevor die zu ersetzende Erweiterung deinstalliert wird.
  • Migration mit den Befehlen der Function Kits-Befehlszeile Sie können separate Befehle verwenden, um Ihre Erweiterung zu aktualisieren, ein Funktions-Kit zu installieren, es wie die Erweiterung zu konfigurieren, das Kit bereitzustellen und die Erweiterung zu deinstallieren. So haben Sie mehr Flexibilität, um Befehle neu anzuordnen oder zusätzliche Aufgaben zwischen den Schritten auszuführen.

Mit ext:migrate migrieren

Starten Sie einmal pro Erweiterungsinstanz eine Migration, indem Sie Folgendes ausführen:

firebase ext:migrate --project <project-id>

Dieser Befehl führt Sie durch folgende Schritte:

  1. Auswählen einer Erweiterung, die migriert werden soll und für die ein offizieller Funktions-Kit-Ersatz verfügbar ist.
  2. Wählen Sie eine bestimmte Instanz dieser Erweiterung aus.
  3. Aktualisieren Sie die Erweiterung bei Bedarf auf die aktuelle Version.
  4. Installieren des Funktions-Kits und Konfigurieren einer Instanz, die mit der Erweiterungsinstanz identisch ist.
  5. Funktions-Kit wird bereitgestellt.
  6. Prüfen, ob das Funktions-Kit erfolgreich bereitgestellt wurde und ob alle Lebenszyklus-Hooks (falls vorhanden) ausgeführt wurden.
  7. Die Erweiterungsinstanz wird deinstalliert.

Wenn Sie die spezifische Erweiterung oder Erweiterungsinstanz kennen, die Sie migrieren möchten, geben Sie sie mit den folgenden Befehlszeilen-Flags an:

firebase ext:migrate --extension firebase/firestore-bigquery-export --project <project-id>

# or

firebase ext:migrate --ext-instance firestore-bigquery-export-abcd --project <project-id>

Wenn Sie das spezifische Paket kennen, zu dem Sie migrieren möchten, insbesondere wenn es sich nicht um ein offizielles Ersatzpaket handelt, das von Google aufgeführt wird, geben Sie es mit dem Flag --package an:

firebase ext:migrate --ext-instance firestore-bigquery-export-abcd --package @firebase-function-kits/firestore-bigquery-export --project <project-id>

Bereitstellung eines Funktions-Kits prüfen

Prüfen Sie in den Bereitstellungslogs, ob Lebenszyklus-Hooks ausgelöst wurden, um festzustellen, ob die firebase deploy des Kits fehlerfrei war. Beliebte Erweiterungen wie „Stream Cloud Firestore to BigQuery“ verwenden Lebenszyklus-Hooks. Das folgende Beispiel zeigt, wie ein Lebenszyklus-Hook aussieht, wenn er ausgelöst wird:

i  functions: Executing afterFirstDeploy lifecycle hook targeting: kit-firestore-bigquery-export-initBigQuerySync...
✔  functions: Successfully queued task for lifecycle hook kit-firestore-bigquery-export-initBigQuerySync in queue projects/my-project/locations/europe-west1/queues/kit-firestore-bigquery-export-initBigQuerySync.
i  functions: View logs for afterFirstDeploy at: https://console.cloud.google.com/logs/query;query=resource.type%3D%22cloud_run_revision%22%0Aresource.labels.service_name%3D%22kit-firestore-bigquery-export--initbigquerysync%22%0Aresource.labels.location%3D%22europe-west1%22;project=my-project

Diese Logeinträge bestätigen Folgendes:

  • Ein Lebenszyklus-Hook wurde gefunden und ausgeführt.
  • Eine Aufgabe wurde in die mit dem Lebenszyklus-Hook verknüpfte Aufgabenwarteschlange eingereiht.
  • Es wurde ein Link zu Cloud Logging bereitgestellt, damit Sie prüfen können, ob die Aufgabe ohne Fehler abgeschlossen wurde.

Folgen Sie dem Link zu den Logs in der Google Cloud-Konsole, um zu prüfen, ob die Logs keine Fehler enthalten und das Ereignis der Aufgabenwarteschlange erfolgreich verarbeitet wurde. Wenn das Lifecycle-Event nicht erfolgreich ausgeführt wurde, können Sie es mit folgendem Befehl noch einmal auslösen:

firebase functions:lifecycle:run <hook-name> <codebase>

Wenn Sie zum ersten Mal eine Funktions-Kit-Instanz bereitstellen, führen Sie Folgendes aus:

firebase functions:lifecycle:run afterFirstDeploy <kit-instance-id>

Wenn Sie die Migration während der Validierung beenden oder rückgängig machen möchten, können Sie das Kit deinstallieren. Folgen Sie dazu der Anleitung unter Erweiterung deinstallieren.

Nachdem Sie überprüft haben, dass die erste Bereitstellung Ihres Funktions-Kits erfolgreich abgeschlossen wurde, müssen Sie prüfen, ob die Funktionen des Kits wie erwartet funktionieren. Da die Erweiterung selbst noch ausgeführt wird, müssen Sie darauf achten, dass Sie nicht nur prüfen, ob eine der beiden funktioniert hat, da die Erweiterung funktioniert hat und weiterhin funktionieren wird.

Wenn die Verarbeitung nicht geändert wird und Sie keine doppelten Ergebnisse von der Erweiterung und dem Kit sehen, ist es am besten, die Logs für das Kit direkt zu prüfen, nachdem Sie die Funktionalität des Kits ausgelöst haben.

Beispiel: Cloud Firestore zu BigQuery streamen

Bei der Erweiterung „Stream Cloud Firestore to BigQuery“ werden Schreibvorgänge sowohl in die Tabelle mit dem Rohänderungsprotokoll (*_raw_changelog) als auch in die Tabelle mit der neuesten Ansicht (*_raw_latest) dedupliziert, wenn dasselbe Ereignis an das Kit und die Erweiterung gesendet wird. Sie können also nicht anhand des Vorhandenseins von Zeilen oder doppelten Zeilen in BigQuery prüfen, ob das Kit funktioniert.

Sie können die Funktionslogs kurz nach dem Schreiben in Ihre Firestore-Sammlung mit firebase functions:logs aufrufen und nach einem Logeintrag suchen, der angibt, dass ein Schreibvorgang erfolgreich verarbeitet wurde. Für dieses Kit mit der Standardinstanz-ID firestore-bigquery-export würde das so aussehen:

2026-09-25T19:52:46.328612Z I kit-firestore-bigquery-export-fsexportbigquery: Started execution of extension
2026-09-25T19:52:46.328644Z I kit-firestore-bigquery-export-fsexportbigquery: {"message":"Firestore event received by onDocumentWritten trigger","document_name":"projects/extensions-eventarc-testing/databases/(default)/documents/exported-messages/cmGP6XLyksqGdw2OgTOq","operation":0,"event_id":"9f59a2a4-1a5e-4c41-a32d-561e3c734502"}
2026-09-25T19:52:46.616064Z I kit-firestore-bigquery-export-fsexportbigquery: Completed execution of extension
2026-09-2

Wenn Sie viele Logs haben, können Sie mit dem folgenden Befehl nach einer bestimmten Kit-Funktion filtern:

firebase functions:log --only <function name>

Mit dem folgenden Befehl können Sie die spezifischen Funktionsnamen für eine Kit-Instanz ermitteln:

firebase functions:list | grep kit-<kit instance id>

In diesem Beispiel:

firebase functions:list | grep kit-firestore-bigquery-export
│ kit-firestore-bigquery-export-fsexportbigquery  │ v2      │ google.cloud.firestore.document.v1.written                    │
│ kit-firestore-bigquery-export-initBigQuerySync  │ v2      │ taskQueue                                                     │
│ kit-firestore-bigquery-export-setupBigQuerySync │ v2      │ taskQueue                                                     │
│ kit-firestore-bigquery-export-syncBigQuery      │ v2      │ taskQueue                                                     │

README-Datei des Funktions-Kits lesen

Für einige Kits sind möglicherweise zusätzliche Schritte erforderlich, die nicht automatisch von Funktions-Kits ausgeführt werden. Lesen Sie die README für das Kit, das Sie installieren, und folgen Sie den zusätzlichen Anweisungen.

Mit der Funktions-Kits-Befehlszeile migrieren

Bevor Sie beginnen, ermitteln und notieren Sie die Instanz-ID der Erweiterung, die Sie zu einem Kit migrieren möchten, sowie den npm-Paketnamen des Ersatz-Kits. Beide finden Sie in der Ausgabe von firebase ext:list. Ein Beispiel für die Verwendung von ext:list finden Sie unter Migrationspfad bestimmen.

1. Upgrade der Erweiterungsinstanz auf die aktuelle Version

Sie müssen Ihre Erweiterung auf die aktuelle Version aktualisieren, um den Unterschied zwischen Ihrer Erweiterungsinstanz und dem Ersatz-Kit zu minimieren. Wenn Sie Ihre Erweiterung nicht aktualisieren, kann es zu erheblichen, funktionsgefährdenden Änderungen zwischen Ihrer Erweiterungsinstanz und dem Ersatz-Kit kommen. Die exportierte Konfiguration entspricht aufgrund von Parameteränderungen zwischen den Versionen möglicherweise nicht den Erwartungen des Kits.

Verwenden Sie eine der folgenden Optionen, um Ihre Erweiterung zu aktualisieren, je nachdem, wo sie installiert wurde:

  • Über die Firebase-Konsole
  • Über die Firebase-Befehlszeile mit:
    • firebase ext:update <extension-instance-id> --project <project-id> firebase deploy --only extensions --project <project-id>

Wenn Sie diesen Schritt überspringen, werden Sie von der Befehlszeile beim Exportieren der Konfiguration aufgefordert, ein Upgrade durchzuführen, wenn Ihre Erweiterung nicht die aktuelle Version hat.

2. Ersatz-Funktions-Kit-Instanz prüfen und installieren

Sie können das Funktions-Kit mit dem folgenden CLI-Befehl installieren:

firebase functions:kits:install --template migration --no-configure --package <npm-package-name> --project <project-id>

Wenn Sie während der Installation eine Instanz-ID für Ihr Kit auswählen, notieren Sie sie sich, damit Sie sie später in der Migrationsanleitung verwenden können.

Nach der Installation des Kits wird in Ihrem Firebase-Projekt ein neues Verzeichnis mit einem Speicherort wie function-kits/<kit-name>/source erstellt. Es enthält das npm-Paket mit dem Kit, das Ihre Erweiterung ersetzt, und eine einfache index.ts-Datei, die diese Funktionen für Firebase exportiert, damit sie bereitgestellt und benutzerdefinierte Konfigurationen festgelegt werden können.

Lesen Sie die README-Datei für das Kit und folgen Sie den darin enthaltenen zusätzlichen Anweisungen.

Wenn Sie mehrere Instanzen des Kits im selben Projekt haben, können Sie diesen Befehl wiederholen, um neue Instanzen desselben Kits zu erstellen. Sie können auch eine einzelne Kit-Instanz in zwei verschiedenen Firebase-Projekten mit unterschiedlichen Konfigurationen bereitstellen (z. B. ein Staging-Projekt und ein Produktionsprojekt). Weitere Informationen zu diesen erweiterten Konfigurationen finden Sie unter Erweiterte Migrationen.

Beispiel:

firebase functions:kits:install --template migration --no-configure --package @firebase-function-kits/firestore-bigquery-export --project my-project

3. Konfigurieren Sie die Funktions-Kit-Instanz identisch mit der Erweiterung.

Sie müssen diese Kit-Instanz mit einer Konfiguration anpassen, die mit der zu ersetzenden Erweiterung identisch ist. Sie können die Konfiguration Ihrer Erweiterungsinstanz in eine .env-Datei exportieren, in der Parameter, Umgebungsvariablen und Secret-Referenzkonfigurationsdaten für alle Cloud Functions, einschließlich Kits, gespeichert werden. Führen Sie den folgenden Befehl aus, um sie direkt in die Konfigurationsdatei Ihres Kits zu exportieren:

firebase ext:export --mode functions --instance <extension-instance-id> --kit-instance <kit-instance-id> --project <project-id>

Am Ende dieses Schritts werden die Konfigurationsinformationen für diese Instanz in einer projektspezifischen .env-Datei im Konfigurationsverzeichnis Ihrer Instanz gespeichert, z. B.: function-kits/<kit-name>/config-<instance-id>/.env.<project-id>

4. Kit-Ersatz bereitstellen und prüfen

Nachdem das Kit installiert und als eine Reihe von Funktionen verfügbar ist, können Sie den Kit-Ersatz bereitstellen. Funktions-Kits funktionieren wie Standardfunktionen, wobei jede Kit-Instanz als separate Codebasis zum Organisieren Ihrer Funktionen dient. Sie können alle Funktionen oder nur eine bestimmte Kit-Instanz bereitstellen. Wenn Sie eine einzelne Erweiterungsinstanz migrieren, stellen Sie nur diese Kit-Instanz bereit.

Wenn Ihr Kit neue Parameter verwendet, die in der Erweiterungsinstanz, von der Sie migriert sind, nicht vorhanden waren, werden Sie von der Firebase-Befehlszeile zu Beginn des Bereitstellungsprozesses dazu aufgefordert, diese anzugeben. Das ist in diesem Beispiel einer aktuellen firestore-bigquery-export-Erweiterung nicht zu erwarten, aber bei vielen Kits wird für jede vom Kit verwendete Ereignistriggerquelle ein neuer Parameter abgefragt. Im Rahmen dieser Migration werden in aktualisierten Kits Funktionen der 2. Generation verwendet, während in Erweiterungen zuvor Funktionen der 1. Generation verwendet wurden. In der 2. Generation befinden sich Funktionen in der Nähe ihrer Ereignisquellen und werden als zusätzlicher Parameter hinzugefügt. Wenn in zukünftigen Updates neue Parameter hinzugefügt werden, werden Sie von der Befehlszeile bei der nächsten Bereitstellung dazu aufgefordert.

Beispiel:

firebase deploy --only functions:firestore-bigquery-export --project my-project

Ausgabe:

=== Deploying to 'my-project'...
i  deploying functions
i  functions: Loaded environment variables from function-kits/firestore-bigquery-export/config-firestore-bigquery-export/.env.my-project
i  functions: ensuring required API bigquery.googleapis.com is enabled...
i  functions: ensuring required API cloudtasks.googleapis.com is enabled...
✔  functions: required APIs are enabled
i  functions: granting declarative IAM roles to managed service account:
   - BigQuery Data Editor
   - BigQuery User
   - Cloud Datastore User
   - Eventarc Event Receiver
   - roles/run.invoker
✔  functions: successfully granted IAM roles
i  functions: creating Node.js 22 (2nd Gen) function kit-firestore-bigquery-export-fsexportbigquery(us-central1)...
i  functions: creating Node.js 22 (2nd Gen) function kit-firestore-bigquery-export-initBigQuerySync(us-central1)...
i  functions: creating Node.js 22 (2nd Gen) function kit-firestore-bigquery-export-setupBigQuerySync(us-central1)...
✔  functions[kit-firestore-bigquery-export-fsexportbigquery(us-central1)] Successful create operation.
✔  functions[kit-firestore-bigquery-export-initBigQuerySync(us-central1)] Successful create operation.
✔  functions[kit-firestore-bigquery-export-setupBigQuerySync(us-central1)] Successful create operation.
i  functions: Executing afterFirstDeploy lifecycle hook targeting: kit-firestore-bigquery-export-initBigQuerySync...
✔  functions: Successfully queued task for lifecycle hook kit-firestore-bigquery-export-initBigQuerySync in queue projects/my-project/locations/us-central1/queues/kit-firestore-bigquery-export-initBigQuerySync.
✔  Deploy complete!

Prüfen Sie in den Bereitstellungslogs, ob Lebenszyklus-Hooks ausgelöst wurden, um festzustellen, ob die firebase deploy des Kits fehlerfrei war. Beliebte Erweiterungen wie „Stream Cloud Firestore to BigQuery“ verwenden Lebenszyklus-Hooks. Das folgende Beispiel zeigt, wie ein Lebenszyklus-Hook aussieht, wenn er ausgelöst wird:

i  functions: Executing afterFirstDeploy lifecycle hook targeting: kit-firestore-bigquery-export-initBigQuerySync...
✔  functions: Successfully queued task for lifecycle hook kit-firestore-bigquery-export-initBigQuerySync in queue projects/my-project/locations/europe-west1/queues/kit-firestore-bigquery-export-initBigQuerySync.
i  functions: View logs for afterFirstDeploy at: https://console.cloud.google.com/logs/query;query=resource.type%3D%22cloud_run_revision%22%0Aresource.labels.service_name%3D%22kit-firestore-bigquery-export--initbigquerysync%22%0Aresource.labels.location%3D%22europe-west1%22;project=my-project

Diese Logeinträge bestätigen Folgendes:

  • Ein Lebenszyklus-Hook wurde gefunden und ausgeführt.
  • Eine Aufgabe wurde in die mit dem Lebenszyklus-Hook verknüpfte Aufgabenwarteschlange eingereiht.
  • Es wurde ein Link zu Cloud Logging bereitgestellt, damit Sie prüfen können, ob die Aufgabe ohne Fehler abgeschlossen wurde.

Folgen Sie dem Link zu den Logs in der Google Cloud-Konsole, um zu prüfen, ob die Logs keine Fehler enthalten und das Ereignis der Aufgabenwarteschlange erfolgreich verarbeitet wurde. Wenn das Lifecycle-Event nicht erfolgreich ausgeführt wurde, können Sie es mit folgendem Befehl noch einmal auslösen:

firebase functions:lifecycle:run <hook-name> <codebase>

Wenn Sie zum ersten Mal eine Funktions-Kit-Instanz bereitstellen, führen Sie Folgendes aus:

firebase functions:lifecycle:run afterFirstDeploy <kit-instance-id>

Wenn Sie die Migration während der Validierung beenden oder rückgängig machen möchten, können Sie das Kit deinstallieren. Folgen Sie dazu der Anleitung unter Erweiterung deinstallieren.

Nachdem Sie die erfolgreiche Bereitstellung Ihres Funktions-Kits überprüft haben, müssen Sie prüfen, ob die Funktionen des Kits wie erwartet funktionieren. Da die Erweiterung selbst noch ausgeführt wird, müssen Sie darauf achten, dass Sie nicht nur prüfen, ob eine der beiden funktioniert hat, da die Erweiterung funktioniert hat und weiterhin funktionieren wird.

Wenn die Verarbeitung nicht geändert wird und Sie keine doppelten Ergebnisse von der Erweiterung und dem Kit sehen, ist es am besten, die Logs für das Kit direkt zu prüfen, nachdem Sie die Funktionalität des Kits ausgelöst haben.

Beispiel: Cloud Firestore zu BigQuery streamen

Bei der Erweiterung „Stream Cloud Firestore to BigQuery“ werden Schreibvorgänge sowohl in die Tabelle mit dem Rohänderungsprotokoll (*_raw_changelog) als auch in die Tabelle mit der neuesten Ansicht (*_raw_latest) dedupliziert, wenn dasselbe Ereignis an das Kit und die Erweiterung gesendet wird. Sie können also nicht anhand des Vorhandenseins von Zeilen oder doppelten Zeilen in BigQuery prüfen, ob das Kit funktioniert.

Sie können die Funktionslogs kurz nach dem Schreiben in Ihre Firestore-Sammlung mit firebase functions:logs aufrufen und nach einem Logeintrag suchen, der angibt, dass ein Schreibvorgang erfolgreich verarbeitet wurde. Für dieses Kit mit der Standardinstanz-ID firestore-bigquery-export würde das so aussehen:

2026-09-25T19:52:46.328612Z I kit-firestore-bigquery-export-fsexportbigquery: Started execution of extension
2026-09-25T19:52:46.328644Z I kit-firestore-bigquery-export-fsexportbigquery: {"message":"Firestore event received by onDocumentWritten trigger","document_name":"projects/extensions-eventarc-testing/databases/(default)/documents/exported-messages/cmGP6XLyksqGdw2OgTOq","operation":0,"event_id":"9f59a2a4-1a5e-4c41-a32d-561e3c734502"}
2026-09-25T19:52:46.616064Z I kit-firestore-bigquery-export-fsexportbigquery: Completed execution of extension
2026-09-2

Wenn Sie viele Logs haben, können Sie mit dem folgenden Befehl nach einer bestimmten Kit-Funktion filtern:

firebase functions:log --only <function name>

Mit dem folgenden Befehl können Sie die spezifischen Funktionsnamen für eine Kit-Instanz ermitteln:

firebase functions:list | grep kit-<kit instance id>

In diesem Beispiel:

firebase functions:list | grep kit-firestore-bigquery-export
│ kit-firestore-bigquery-export-fsexportbigquery  │ v2      │ google.cloud.firestore.document.v1.written                    │
│ kit-firestore-bigquery-export-initBigQuerySync  │ v2      │ taskQueue                                                     │
│ kit-firestore-bigquery-export-setupBigQuerySync │ v2      │ taskQueue                                                     │
│ kit-firestore-bigquery-export-syncBigQuery      │ v2      │ taskQueue                                                     │

5. Erweiterung deinstallieren

Nachdem Sie das bereitgestellte Funktions-Kit überprüft haben, können Sie die Erweiterung deinstallieren, damit das Verhalten nicht einmal für das Kit und einmal für die Erweiterung dupliziert wird. Sie können alle Erweiterungen über die Firebase-Befehlszeile deinstallieren, unabhängig davon, wie Sie sie installiert haben, wenn Sie das Flag --immediate übergeben:

firebase ext:uninstall <extension-instance-id> --project <project-id> --immediate

Beispiel:

firebase ext:uninstall firestore-bigquery-export --project my-project --immediate

Ausgabe:

i  extensions: uninstalling firestore-bigquery-export...
i  extensions: deleting extension instance resources in project my-project...
✔  extensions: successfully uninstalled firestore-bigquery-export

Erweiterte Migrationen

Sie können Erweiterungen in mehreren Firebase-Projekten haben, die Sie mit einer einzigen Codebasis verwalten möchten. Wenn Sie beispielsweise dieselbe Infrastruktur in einer testing-Umgebung und einer production-Umgebung bereitstellen, die jeweils eine documents-Cloud Firestore-Instanz haben, die Sie nach BigQuery exportieren, haben Sie möglicherweise zwei Instanzen der firestore-bigquery-export-Erweiterung installiert:

  • export-documents-testing
  • export-documents-production

Wenn Sie diese beiden Erweiterungsinstanzen in einer einzigen Codebasis zu zwei Function Kit-Instanzen migriert haben, während Sie mit der Firebase-Befehlszeile gearbeitet haben, und die Bereitstellung mit firebase deploy --project testing und firebase deploy --project production erfolgt ist, würde jede Bereitstellung zwei Instanzen in den Umgebungen testing und production erstellen.

Ersetzen Sie stattdessen die beiden Erweiterungsinstanzen durch eine Funktions-Kit-Instanz von firestore-bigquery-export, die in mehreren Projekten bereitgestellt wird, wobei jedes Projekt eine eigene Konfiguration hat. Das Konfigurationsverzeichnis für die Instanz sollte so aussehen:

  • config-export-documents/
    • .env.testing
    • .env.production

Bei jeder Bereitstellung in testing und production wird eine Instanz Ihres Kits mit der entsprechenden Konfiguration erstellt. Die vorhandenen CLI-Befehle erstellen diese Einrichtung, solange Sie das Flag --project bei jedem Aufruf von ext:migrate oder functions:kits:install übergeben.

Beispiel:

firebase functions:kits:install --package @firebase-function-kits/firestore-bigquery-export --project testing --no-configure --template migration
✔ What would you like to name this kit? firestore-bigquery-export
✔ What would you like to name this instance? export-documents
✔  Wrote function-kits/firestore-bigquery-export/source/package.json
✔  Wrote function-kits/firestore-bigquery-export/source/tsconfig.json
✔  Wrote function-kits/firestore-bigquery-export/source/.gitignore
✔  Wrote function-kits/firestore-bigquery-export/source/src/index.ts
i  functions: Running npm install
✔  Wrote configuration info to firebase.json
✔  functions: Function kit firestore-bigquery-export successfully installed.
# This creates the export-documents instance with an empty .env.testing file
# for the testing project. Now populate it via export:
firebase ext:export --mode functions --instance export-documents-testing \
  --kit-instance export-documents --project testing

# Repeat the export for production into the same kit instance to create
# .env.production from the export-documents-prod instance:
firebase ext:export --mode functions --instance export-documents-prod \
  --kit-instance export-documents --project production

Sie haben jetzt eine einzelne Kit-Instanz konfiguriert, die in Ihren Projekten testing und production mit den jeweiligen Konfigurationen bereitgestellt werden kann. Wenn Sie eine Instanz im Projekt testing erstellen und den Befehl functions:kits:install für dasselbe Paket im Projekt production ausführen, werden Sie gefragt, ob Sie die für testing konfigurierte Instanz wiederverwenden oder eine zweite Instanz installieren möchten.