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 Publisher von Erweiterungen registrieren.

Überprüfbare Quellen

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

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

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

  • Nutzer können den Quellcode der jeweiligen Revision der Erweiterung prüfen, die installiert wird.
  • Sie können sicherstellen, dass Sie nur das hochladen, was Sie hochladen möchten, und nicht beispielsweise unfertige Arbeiten oder verwaiste Dateien aus der Entwicklung.

Empfohlener Entwicklungszyklus

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

Diese Funktion ermöglicht einen Entwicklungszyklus wie den folgenden:

  1. Entwickeln Sie Ihre Erweiterung mit der Firebase Emulator Suite und führen Sie schnell Iterationen durch.

  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 Erweiterungs-Hub hoch (siehe unten). Geben Sie den Installationslink für umfassendere Tests frei und führen Sie bei Bedarf weitere Iterationen durch, indem Sie weitere Vorabversionen hochladen.

  4. Laden Sie die endgültige, stabile Version in den Erweiterungs-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: Führen Sie einen Commit für Ihren Code in einem öffentlichen GitHub-Repository durch.

  2. Führen Sie den Befehl ext:dev:upload der Firebase CLI 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, mit dem die Erweiterung identifiziert wird. Benennen Sie Ihre Erweiterungen mit dem folgenden Format: firebase-product-description-of-tasks-performed. Beispiel: firestore-bigquery-export

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

    • Wenn Sie von GitHub hochladen:

      • Die URL zum Repository der Erweiterung auf GitHub. Ein Repository kann mehrere Erweiterungen enthalten, solange jede Erweiterung ein eindeutiges Stammverzeichnis 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.

      • Der Git-Verweis des Commits, aus dem Sie die Quelle der Erweiterungsversion erstellen möchten. Dies kann ein Commit-Hash, ein Tag oder ein Zweigname sein.

    • Die Releasephase der Version, die Sie hochladen.

      Die Phasen alpha, beta und rc (Releasekandidat) 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 Erweiterungs-Hub veröffentlicht werden sollen. Wenn Sie einen stable-Release hochladen, wird automatisch eine Überprüfung gestartet. Wenn die Überprüfung erfolgreich ist, wird die Erweiterung veröffentlicht.

    Sie geben keine Versionsnummer an. Dieser Wert stammt aus der Datei extension.yaml. Wenn Sie eine Vorabversion einer Erweiterung hochladen, werden die Phase und die Uploadnummer an die Version angehängt. Wenn in extension.yaml beispielsweise Version 1.0.1 angegeben ist und Sie einen Releasekandidaten hochladen, ergibt sich die Version 1.0.1-rc.0. Wenn Sie einen weiteren Releasekandidaten derselben Version hochladen, wird die Zählung automatisch erhöht, sodass sich 1.0.1-rc.1 ergibt usw.

Nachdem Sie eine Vorabversion der Erweiterung hochgeladen haben, können Sie sie für andere zum Testen freigeben. Nutzer können Ihre Erweiterung auf zwei Arten installieren:

  • Über die Console: Nutzer können die Erweiterung installieren, indem sie auf einen Link im 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 für Ihre Tester freigeben.

  • Über die CLI: Nutzer können die Erweiterung installieren, indem sie den ID-String der Erweiterung 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 Releasephase zu ändern. Wenn Sie eine neue Version hochladen, werden Nutzer, die eine ältere Version Ihrer Erweiterung installiert haben, in der Firebase Console aufgefordert, ein Upgrade durchzuführen.

So laden Sie ein Update hoch:

  1. Optional: Führen Sie einen Commit für Ihren Code in einem öffentlichen Git-Repository durch.

  2. Führen Sie den Befehl ext:dev:upload der Firebase CLI 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 seitdem 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 bereit sind, Ihre Erweiterung öffentlich zu veröffentlichen, gehen Sie so vor:

  1. Führen Sie einen Commit für Ihren Code in einem öffentlichen Git-Repository durch. (Für öffentliche Releases erforderlich)

  2. Führen Sie den Befehl ext:dev:upload der Firebase CLI aus und geben Sie stable als Releasephase 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 einen neuen stabilen Release hochladen.

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

Nach dem Einreichen kann die Überprüfung einige Tage dauern. Wenn die Erweiterung akzeptiert wird, wird sie im Erweiterungs-Hub veröffentlicht. Wenn sie abgelehnt wird, erhalten Sie eine Nachricht mit der Begründung. Sie können dann die gemeldeten Probleme beheben und die Erweiterung noch einmal zur Überprüfung einreichen.

Um die Überprüfung zu beschleunigen und die Wahrscheinlichkeit zu erhöhen, dass die Erweiterung beim ersten Versuch akzeptiert wird, prüfen Sie vor dem Einreichen Folgendes:

  • 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 klar und deutlich als Publisher.
  • Der Name, die Beschreibung und das Symbol Ihrer Erweiterung stellen den Zweck Ihrer Erweiterung klar und deutlich 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 haben den Nutzern klar erklärt, 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 auf dem Publisher-Dashboard ansehen.

Firebase CLI

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

firebase ext:dev:list your_publisher_id

Nutzung Ihrer hochgeladenen Erweiterungen ansehen

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

Publisher-Dashboard

Das Publisher-Dashboard enthält kumulative Nutzungsstatistiken für alle Ihre Erweiterungen und individuelle Statistiken 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 verwerfen

Es kann vorkommen, dass Sie eine alte Version Ihrer Erweiterung verwerfen möchten. 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 zu einem Upgrade zu bewegen.

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

Publisher-Dashboard

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

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

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

Wenn alle Versionen einer Erweiterung verworfen wurden, gilt die Erweiterung als verworfen und wird aus dem Erweiterungs-Hub entfernt. Wenn Sie eine neue Version einer verworfenen Erweiterung hochladen, wird automatisch eine Überprüfung gestartet. Nach der Akzeptanz wird die Erweiterung wieder im Erweiterungs-Hub veröffentlicht.

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

firebase ext:dev:undeprecate your_publisher_id/your_extension_id versions

Anhang: Build-Fehler beheben

Wenn Sie Ihre Erweiterung hochladen, erstellt das Back-End zuerst Ihren Quellcode. Dabei wird so vorgegangen:

  1. Ihr GitHub-Repository wird geklont und die angegebene Quellreferenz ausgecheckt.

  2. NPM-Abhängigkeiten werden installiert, indem npm clean-install in jedem Funktions quellverzeichnis ausgeführt wird, das in extension.yaml angegeben ist (siehe sourceDirectory unter Cloud Functions-Ressourcen).

    Wichtige Hinweise:

    • Jede package.json-Datei muss eine entsprechende package-lock.json Datei haben. Weitere Informationen finden Sie unter npm-ci.

    • Post-Install-Skripts werden bei der Installation von Abhängigkeiten nicht ausgeführt. Wenn Ihr Quellcode-Build auf Post-Install-Skripts basiert, müssen Sie ihn umgestalten, bevor Sie ihn hochladen.

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

Im endgültigen Erweiterungspaket, das freigegeben wird, wird nur das Stammverzeichnis Ihrer Erweiterung gespeichert.

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