Erweiterung veröffentlichen

Auf dieser Seite wird erläutert, wie Sie eine Erweiterung im Erweiterungs-Hub veröffentlichen.

Hinweis

Wenn Sie eine Erweiterung veröffentlichen möchten, müssen Sie sich zuerst als Erweiterungs-Publisher registrieren.

Nachprüfbare Quellen

Alle im Extensions Hub veröffentlichten Erweiterungen müssen eine öffentlich überprüfbare Quelle haben. Anstatt den Quellcode der Erweiterung direkt in den Erweiterungs-Hub hochzuladen, geben Sie den Quellspeicherort an. Der Erweiterungs-Hub lädt den Quellcode dann herunter und erstellt die Erweiterung daraus.

Derzeit bedeutet das, dass Sie den Quellcode Ihrer Erweiterung in einem öffentlichen GitHub-Repository zur Verfügung stellen müssen.

Das Hochladen aus einer überprüfbaren Quelle bietet mehrere Vorteile:

  • Nutzer können den Quellcode der jeweiligen Version der Erweiterung, die installiert wird, einsehen.
  • So können Sie sicher sein, dass Sie nur das hochladen, was Sie hochladen möchten, und nicht z. B. Work-in-Progress-Dateien oder Dateien, die aus der Entwicklung übrig geblieben sind.

Empfohlener Entwicklungszyklus

Die Entwicklungstools für Firebase-Erweiterungen unterstützen das Hochladen von Vorabversionen Ihrer Erweiterungen. So können Sie Ihre Erweiterungen und den Installationsprozess für Erweiterungen ganz einfach in derselben Umgebung testen, in der sie später veröffentlicht werden.

Diese Funktion ermöglicht einen Entwicklungszyklus wie den folgenden:

  1. Mit der Firebase Emulator Suite können Sie Ihre Erweiterung entwickeln und schnell iterieren.

  2. Testen Sie Ihre Erweiterung in einem echten Projekt, indem Sie sie aus einer lokalen Quelle installieren:

    firebase ext:install /path/to/extension
    firebase deploy --only extensions
  3. Laden Sie eine Vorabversion in den Extensions Hub hoch (siehe unten). Geben Sie den Installationslink für umfangreichere Tests weiter und laden Sie bei Bedarf weitere Vorabversionen hoch.

  4. Laden Sie die endgültige, stabile Version in den Extensions Hub hoch (siehe unten) und reichen Sie sie zur Überprüfung ein. Wenn die Erweiterung die Überprüfung besteht, wird sie im Erweiterungs-Hub veröffentlicht.

  5. Erhöhen Sie die Versionsnummer in extension.yaml und wiederholen Sie diesen Zyklus für die nächste Version Ihrer Erweiterung.

Neue Erweiterung hochladen

So laden Sie eine Erweiterung zum ersten Mal hoch:

  1. Optional: Committen Sie Ihren Code in ein öffentliches GitHub-Repository.

  2. Führen Sie den Firebase CLI-Befehl ext:dev:upload aus:

    GitHub

    firebase ext:dev:upload your_publisher_id/your_extension_id

    Lokale Quelle

    cd /path/to/extension
    firebase ext:dev:upload your_publisher_id/your_extension_id --local

    In Ihrem Befehlsaufruf geben Sie Folgendes an:

    • Die Publisher-ID, die Sie registriert haben.

    • Ein ID-String zur Identifizierung der Erweiterung. Benennen Sie Ihre Erweiterungen im folgenden Format: firebase-product-description-of-tasks-performed. Beispiel: firestore-bigquery-export

    Der Befehl fordert Sie auf, zusätzliche Informationen anzugeben:

    • Wenn Sie Inhalte von GitHub hochladen:

      • Die URL zum Repository der Erweiterung in GitHub. Ein Repository kann mehrere Erweiterungen enthalten, sofern jede Erweiterung einen eindeutigen Stamm hat.

        Wenn Sie zum ersten Mal eine neue Erweiterung hochladen, wird das Repository als kanonische Quelle für Ihre Erweiterung registriert.

      • Das Verzeichnis im Repository, das Ihre Erweiterung enthält.

      • Die Git-Referenz des Commits, aus dem die Quelle für die Erweiterungsversion erstellt werden soll. Dies kann ein Commit-Hash, ein Tag oder ein Zweigname sein.

    • Die Releasestufe der Version, die Sie hochladen.

      Die Phasen alpha, beta und rc (Release-Kandidat) sind für das Hochladen von Vorabversionen vorgesehen, die von Testern installiert werden können. Verwenden Sie eine dieser Phasen für den ersten Upload einer neuen Erweiterung.

      Die Phase stable wird für öffentliche Releases verwendet, die im Extensions Hub veröffentlicht werden sollen. Wenn Sie eine stable-Version hochladen, wird automatisch eine Überprüfung gestartet. Wenn die Überprüfung erfolgreich ist, wird die Erweiterung veröffentlicht.

    Beachten Sie, dass Sie keine Versionsnummer angeben. Dieser Wert stammt aus der Datei extension.yaml. Wenn Sie eine Vorabversionserweiterung hochladen, werden die Stufe und die Uploadnummer an die Version angehängt. Wenn beispielsweise extension.yaml die Version 1.0.1 angibt und Sie einen Release-Kandidaten hochladen, ergibt sich die Version 1.0.1-rc.0. Wenn Sie einen weiteren Release-Kandidaten derselben Version hochladen, wird die Zählung automatisch erhöht, sodass 1.0.1-rc.1 entsteht usw.

Nachdem Sie eine Vorabveröffentlichung der Erweiterung hochgeladen haben, können Sie sie mit anderen zum Testen teilen. Nutzer können Ihre Erweiterung auf zwei Arten installieren:

  • Über die Console: Nutzer können die Erweiterung installieren, indem sie auf einen Link mit dem folgenden Format klicken:

    https://console.firebase.google.com/project/_/extensions/install?ref=your_publisher_id/your_extension_id@version

    Sie können den direkten Link mit Ihren Testern teilen.

  • Über die Befehlszeile: Nutzer können die Erweiterung installieren, indem sie die Erweiterungs-ID-String an den Befehl ext:install übergeben:

    firebase ext:install your_publisher_id/your_extension_id@version \
        --project=destination_project_id
    

Aktualisierte Version hochladen

Nachdem Sie die erste Version einer Erweiterung hochgeladen haben, können Sie Updates hochladen, um Probleme zu beheben, Funktionen hinzuzufügen oder die Release-Phase voranzutreiben. Wenn Sie eine neue Version hochladen, werden Nutzer, die eine ältere Version Ihrer Erweiterung installiert haben, in der Firebase-Konsole aufgefordert, ein Upgrade durchzuführen.

So lädst du ein Update hoch:

  1. Optional: Committen Sie Ihren Code in ein öffentliches Git-Repository.

  2. Führen Sie den Firebase CLI-Befehl ext:dev:upload aus:

    GitHub

    firebase ext:dev:upload your_publisher_id/your_extension_id

    Dieses Mal werden Sie nicht aufgefordert, das GitHub-Repository oder das Stammverzeichnis der Erweiterung anzugeben, da diese bereits für Ihre Erweiterung konfiguriert wurden. Wenn Sie Ihre Repository-Struktur inzwischen umgestaltet oder zu einem neuen Repository migriert haben, können Sie sie mit den Befehlsargumenten --root und --repo ändern.

    Lokale Quelle

    cd /path/to/extension
    firebase ext:dev:upload your_publisher_id/your_extension_id --local

Erweiterung zur Veröffentlichung einreichen

Wenn Sie Ihre Erweiterung öffentlich veröffentlichen möchten, gehen Sie so vor:

  1. Übertragen Sie Ihren Code per Commit an ein öffentliches Git-Repository. (Erforderlich für öffentliche Releases)

  2. Führen Sie den ext:dev:upload-Befehl der Firebase CLI aus und geben Sie stable als Release-Phase an:

    firebase ext:dev:upload your_publisher_id/your_extension_id
  3. Wenn Sie bereits eine Version Ihrer Erweiterung veröffentlicht haben, wird die Erweiterung automatisch zur Überprüfung eingereicht, wenn Sie ein neues stabiles Release hochladen.

    Wenn Sie den ersten stabilen Release der Erweiterung hochgeladen haben, suchen Sie die Erweiterung in Ihrem Publisher-Dashboard und klicken Sie auf Im Erweiterungs-Hub veröffentlichen.

Nach dem Einreichen kann die Überprüfung einige Tage dauern. Sollte sie akzeptiert werden, wird sie im Erweiterungs-Hub veröffentlicht. Wenn Ihr Antrag abgelehnt wird, erhalten Sie eine Nachricht mit dem Grund dafür. Sie können die gemeldeten Probleme dann beheben und den Antrag noch einmal zur Überprüfung einreichen.

Damit die Überprüfung schneller geht und Sie die Prüfung beim ersten Versuch bestehen, sollten Sie vor dem Einreichen Folgendes prüfen:

  • Sie haben Ihre Erweiterung und den Installationsprozess gründlich getestet.
  • Ihre Dokumentation ist vollständig und korrekt und wird in der Firebase Console richtig gerendert.
  • Ihr Publisher-Name und Ihr Branding identifizieren Sie eindeutig und genau als Publisher.
  • Der Name, die Beschreibung und das Symbol Ihrer Erweiterung stellen den Zweck der Erweiterung klar und präzise dar.
  • Sie haben hilfreiche und korrekte Tags angewendet.
  • Sie haben in extension.yaml alle von Ihnen verwendeten Google- und Nicht-Google-APIs sowie alle Ereignistypen deklariert, die von Ihrer Erweiterung ausgegeben werden.
  • Sie fordern nur Zugriff auf die Rollen an, die für die Funktion der Erweiterung erforderlich sind, und Sie haben den Nutzern klar erläutert, warum Sie diesen Zugriff benötigen.
  • Ihre Quelldateien sind eindeutig unter den Bedingungen von Apache-2.0 lizenziert.

Hochgeladene und veröffentlichte Erweiterungen verwalten

Hochgeladene Erweiterungen auflisten

Führen Sie einen der folgenden Schritte aus, um die Erweiterungen aufzulisten, die Sie unter Ihrer Publisher-ID hochgeladen haben:

Publisher-Dashboard

Sie können sie im Publisher-Dashboard aufrufen.

Firebase CLI

Führen Sie den Befehl ext:dev:list aus:

firebase ext:dev:list your_publisher_id

Nutzung Ihrer hochgeladenen Erweiterungen ansehen

So rufen Sie die Nutzung der Erweiterungen auf, die Sie unter Ihrer Publisher-ID hochgeladen haben:

Publisher-Dashboard

Das Publisher-Dashboard enthält kumulative Nutzungsmesswerte für alle Ihre Erweiterungen und individuelle Messwerte für jede Erweiterung.

Firebase CLI

Führen Sie den Befehl ext:dev:usage aus:

firebase ext:dev:usage your_publisher_id

Version einer Erweiterung einstellen

Möglicherweise möchten Sie irgendwann eine alte Version Ihrer Erweiterung einstellen. Wenn Sie beispielsweise eine neue Version veröffentlichen, in der ein kritischer Fehler behoben oder eine Abhängigkeit mit einem wichtigen Sicherheitsupdate aktualisiert wird, ist es wichtig, zu verhindern, dass neue Nutzer eine alte Version installieren, und bestehende Nutzer zum Aktualisieren zu ermutigen.

Führen Sie einen der folgenden Schritte aus, um eine Version einer Erweiterung einzustellen:

Publisher-Dashboard

  1. Klicken Sie im Publisher-Dashboard auf die Erweiterung, um die Detailansicht zu öffnen.
  2. Wählen Sie die Version aus, die Sie einstellen möchten.
  3. Klicken Sie auf Version einstellen.

Firebase CLI

Führen Sie den Befehl ext:dev:deprecate aus:

firebase ext:dev:deprecate your_publisher_id/your_extension_id versions \
    [--message "deprecation_message"]

Sie können eine einzelne Version oder einen Versionsbereich angeben. Beispiele:

  • 1.0.2
  • 1.1.0-1.1.7
  • <1.2.0
  • 1.1.*

Veraltete Versionen einer Erweiterung werden nicht im Erweiterungs-Hub aufgeführt und können nicht installiert werden. Nutzer, in deren Projekten eine eingestellte Version installiert ist, sehen eine Meldung, in der sie aufgefordert werden, ein Upgrade durchzuführen. Sie können die Erweiterung in der Zwischenzeit weiterhin verwenden und neu konfigurieren.

Wenn jede Version einer Erweiterung eingestellt wird, gilt die Erweiterung als eingestellt und wird aus dem Erweiterungs-Hub entfernt. Wenn Sie eine neue Version einer eingestellten Erweiterung hochladen, wird automatisch eine Überprüfung eingeleitet und die Erweiterung wird nach der Genehmigung wieder im Extensions Hub veröffentlicht.

Wenn Sie eine Einstellung rückgängig machen möchten, verwenden Sie das Publisher-Dashboard oder führen Sie den ext:dev:undeprecate-Befehl der Firebase CLI aus:

firebase ext:dev:undeprecate your_publisher_id/your_extension_id versions

Anhang: Build-Fehler beheben

Wenn Sie Ihre Erweiterung hochladen, wird der Quellcode im Backend zuerst mit dem folgenden Verfahren erstellt:

  1. Klonen Sie Ihr GitHub-Repository und checken Sie die angegebene Quellreferenz aus.

  2. Installiert NPM-Abhängigkeiten durch Ausführen von npm clean-install in jedem Funktionsquellverzeichnis, das in extension.yaml angegeben ist (siehe sourceDirectory in Cloud Functions-Ressourcen).

    Wichtige Hinweise:

    • Jeder package.json-Datei muss eine entsprechende package-lock.json-Datei zugeordnet sein. Weitere Informationen finden Sie unter npm-ci.

    • Post-Install-Skripts werden während der Installation von Abhängigkeiten nicht ausgeführt. Wenn Ihr Quellcode-Build auf Post-Install-Skripts basiert, sollten Sie ihn vor dem Hochladen umgestalten.

  3. Erstellt Ihren Code, indem npm run build in jedem Funktionsquellverzeichnis ausgeführt wird, das in extension.yaml angegeben ist.

Nur das Stammverzeichnis Ihrer Erweiterung wird im endgültigen Erweiterungspaket gespeichert, das freigegeben wird.

Wenn beim Hochladen Ihrer Erweiterung Build-Fehler auftreten, führen Sie die oben beschriebenen Build-Schritte lokal in einem neuen Verzeichnis aus, bis keine Fehler mehr auftreten. Versuchen Sie dann noch einmal, die Erweiterung hochzuladen.