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 Verlag und Webpublisher für Erweiterungen registrieren.

Überprüfbare Quellen

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

Derzeit bedeutet das, dass Sie den Quellcode Ihrer Erweiterung in einem öffentlichen GitHub-Repository verfügbar machen müssen.

Der Upload aus einer nachweisbaren Quelle bietet mehrere Vorteile:

  • Nutzer können den Quellcode der zu installierenden Version der Erweiterung prüfen.
  • So können Sie sicherstellen, dass nur das hochgeladen wird, was Sie hochladen möchten, und nicht beispielsweise in Arbeit befindliche Projekte oder übrig gebliebene Dateien aus der Entwicklungsphase.

Empfohlener Entwicklungszyklus

Die Entwicklungstools für Firebase-Erweiterungen unterstützen das Hochladen von Vorabversionen Ihrer Erweiterungen. So können Sie Ihre Erweiterungen und die Installation der 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 Erweiterungs-Hub hoch (siehe unten). Verteilen Sie den Installationslink für umfassendere Tests und wiederholen Sie den Vorgang, indem Sie bei Bedarf weitere Vorabveröffentlichungen hochladen.

  4. Laden Sie die endgültige, stabile Version im 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 der 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 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

    Geben Sie in der Befehlsaufforderung Folgendes an:

    • Die von dir registrierte Publisher-ID.

    • Ein ID-String, mit dem die Erweiterung identifiziert wird. Geben Sie den Namen Ihrer Erweiterungen im folgenden Format an: firebase-product-description-of-tasks-performed. Beispiel: firestore-bigquery-export

    Sie werden aufgefordert, weitere Informationen anzugeben:

    • Wenn Sie Inhalte über GitHub hochladen:

      • Die URL zum Repository der Erweiterung in GitHub. Ein Repository kann mehrere Erweiterungen enthalten, solange 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 Sie die Quelle der Erweiterungsversion erstellen möchten. Dies kann ein Commit-Hash, ein Tag oder ein Verzweigungsname sein.

    • Die Release-Phase der Version, die Sie hochladen.

      Die Phasen alpha, beta und rc (Releasekandidat) dienen zum Hochladen von Vorabveröffentlichungen, die von Testern installiert werden können. Verwenden Sie eine dieser Phasen beim ersten Upload einer neuen Erweiterung.

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

    Beachten Sie, dass Sie keine Versionsnummer angeben. Dieser Wert stammt aus der Datei extension.yaml. Wenn Sie eine Vorabversion einer Erweiterung hochladen, werden der Version die Phase und die Uploadnummer angehängt. Wenn extension.yaml beispielsweise Version 1.0.1 angibt und Sie einen Releasekandidaten hochladen, wird die Version 1.0.1-rc.0 erstellt. Wenn Sie einen weiteren Releasekandidaten der gleichen Version hochladen, wird die Anzahl automatisch erhöht, was zu 1.0.1-rc.1 usw. führt.

Nachdem Sie eine Vorabversion der Erweiterung hochgeladen haben, können Sie sie zum Testen mit anderen 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 folgendem 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 den 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 Veröffentlichungsphase fortzusetzen. Wenn Sie eine neue Version hochladen, werden Nutzer, die eine ältere Version Ihrer Erweiterung installiert haben, in der Firebase-Konsole zum Aktualisieren aufgefordert.

So laden Sie ein Update hoch:

  1. Optional: Committen Sie Ihren Code in einem öffentlichen Git-Repository.

  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 sie bereits für Ihre Erweiterung konfiguriert wurden. Wenn Sie Ihre Repository-Struktur seitdem neu strukturiert 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

Fristverlängerung für die Veröffentlichung beantragen

Wenn Sie die Erweiterung 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 Befehl ext:dev:upload 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 beim Hochladen einer neuen stabilen Version automatisch zur Überprüfung eingereicht.

    Wenn Sie die erste stabile Version der Erweiterung hochgeladen haben, suchen Sie sie in Ihrem Publisher-Dashboard und klicken Sie auf Im Erweiterungs-Hub veröffentlichen.

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

Um die Überprüfung zu beschleunigen und die Chancen zu erhöhen, dass Sie beim ersten Versuch bestehen, sollten Sie vor dem Einreichen Folgendes prüfen:

  • Sie haben Ihre Erweiterung und die Installation gründlich getestet.
  • Ihre Dokumentation ist vollständig und korrekt und lässt sich in der Firebase Console problemlos rendern.
  • Ihr Name und Ihr Branding als Publisher müssen klar und deutlich erkennbar sein.
  • Der Name, die Beschreibung und das Symbol Ihrer Erweiterung müssen den Zweck der Erweiterung klar und präzise darstellen.
  • Sie haben hilfreiche und korrekte Tags verwendet.
  • Sie haben in extension.yaml alle von Ihnen verwendeten APIs von Google und Drittanbietern sowie alle Ereignistypen deklariert, die von Ihrer Erweiterung gesendet werden.
  • Sie fordern nur Zugriff auf die Rollen an, die für die Funktion der Erweiterung erforderlich sind, und Sie haben den Nutzern genau erklärt, warum Sie einen solchen Zugriff benötigen.
  • Ihre Quelldateien sind eindeutig gemäß den Bedingungen von Apache-2.0 lizenziert.

Hochgeladene und veröffentlichte Erweiterungen verwalten

Liste der hochgeladenen Erweiterungen aufrufen

So rufen Sie die von Ihnen unter Ihrer Publisher-ID hochgeladenen Erweiterungen auf:

Publisher-Dashboard

Sie finden sie im Publisher-Dashboard.

Firebase CLI

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

firebase ext:dev:list your_publisher_id

Nutzung Ihrer hochgeladenen Erweiterungen ansehen

Wenn Sie sich ansehen möchten, wie die Erweiterungen verwendet werden, die Sie unter Ihrer Publisher-ID hochgeladen haben, führen Sie einen der folgenden Schritte aus:

Publisher-Dashboard

Das Publisher-Dashboard enthält kumulative Nutzungsmesswerte für alle 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 Upgrade anzuregen.

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

Publisher-Dashboard

  1. Klicke im Publisher-Dashboard auf die Erweiterung, um die zugehörige 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.*

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

Wenn alle Versionen einer Erweiterung eingestellt werden, 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 gestartet. Nach der Genehmigung wird die Erweiterung wieder im Extensions Hub veröffentlicht.

Wenn du eine Einstellung rückgängig machen möchtest, verwende das Publisher-Dashboard oder führe den Befehl ext:dev:undeprecate der Firebase CLI aus:

firebase ext:dev:undeprecate your_publisher_id/your_extension_id versions

Anhang: Fehlerbehebung bei Build-Fehlern

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

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

  2. Installiert NPM-Abhängigkeiten, indem npm clean-install in jedem in extension.yaml angegebenen Quellverzeichnis der Funktion ausgeführt wird (siehe sourceDirectory in Cloud Functions-Ressourcen).

    Wichtige Hinweise:

    • Jede package.json-Datei muss einer entsprechenden package-lock.json-Datei zugeordnet sein. Weitere Informationen finden Sie unter npm-ci.

    • Post-Installation-Scripts werden während der Installation von Abhängigkeiten nicht ausgeführt. Wenn Ihr Quellcode-Build auf Scripts nach der Installation angewiesen ist, sollten Sie ihn vor dem Hochladen umstrukturieren.

  3. Erstellt den Code, indem npm run build in jedem in extension.yaml angegebenen Funktionsquellverzeichnis ausgeführt wird.

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

Wenn beim Hochladen Ihrer Erweiterung Buildfehler auftreten, wiederholen Sie die oben beschriebenen Buildschritte lokal in einem neuen Verzeichnis, bis keine Fehler mehr auftreten. Versuchen Sie dann noch einmal, die Erweiterung hochzuladen.