Erweiterung veröffentlichen

Auf dieser Seite wird erläutert, wie Sie eine Erweiterung auf Extensions Hub veröffentlichen können.

Bevor Sie beginnen

Um eine Erweiterung zu veröffentlichen, müssen Sie sich zunächst als Erweiterungsherausgeber registrieren .

Überprüfbare Quellen

Alle auf Extensions Hub veröffentlichten Erweiterungen müssen eine öffentlich überprüfbare Quelle haben. Anstatt den Quellcode Ihrer Erweiterung direkt auf Extensions Hub hochzuladen, geben Sie stattdessen den Quellspeicherort an und Extension Hub lädt ihn herunter und erstellt ihn von dort aus.

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

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

  • Benutzer können den Quellcode der spezifischen Revision der zu installierenden Erweiterung einsehen.
  • Sie können sicherstellen, dass Sie nur das hochladen, was Sie hochladen möchten, und nicht beispielsweise laufende Arbeiten oder vereinzelte Dateien, die von der Entwicklung übrig geblieben sind.

Empfohlener Entwicklungszyklus

Die Entwicklungstools von Firebase Extensions unterstützen das Hochladen von Vorabversionen Ihrer Erweiterungen, sodass Sie Ihre Erweiterungen und den Erweiterungsinstallationsprozess ganz einfach in derselben Umgebung testen können, in der sie schließlich veröffentlicht werden.

Diese Fähigkeit ermöglicht einen Entwicklungszyklus wie den folgenden:

  1. Entwickeln Sie Ihre Erweiterung und iterieren Sie sie schnell mit der Firebase Emulator Suite .

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

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

  4. Laden Sie die endgültige, stabile Version auf Extensions Hub hoch (siehe unten) und reichen Sie sie zur Überprüfung ein. Wenn die Erweiterung die Prüfung besteht, wird sie im Extension 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.

Laden Sie eine neue Erweiterung hoch

So laden Sie eine Erweiterung zum ersten Mal hoch:

  1. Optional : Übertragen 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
    

    In Ihrem Befehlsaufruf geben Sie Folgendes an:

    • Die von Ihnen registrierte Herausgeber-ID.

    • Eine ID-Zeichenfolge, die die Erweiterung identifiziert. Benennen Sie Ihre Erweiterungen im folgenden Format: firebase-product - description-of-tasks-performed . Beispiel: firestore-bigquery-export

    Der Befehl fordert Sie zur Eingabe zusätzlicher Informationen auf:

    • Wenn Sie von GitHub hochladen:

      • Die URL zum Repository der Erweiterung in GitHub. Beachten Sie, dass ein Repository mehrere Erweiterungen enthalten kann, solange jede Erweiterung über ein eindeutiges Stammverzeichnis verfügt.

        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 Ihre Erweiterungsversionsquelle erstellen möchten. Dies kann ein Commit-Hash, ein Tag oder ein Zweigname sein.

    • Die Veröffentlichungsphase der Version, die Sie hochladen.

      Die Phasen alpha , beta und rc (Release Candidate) dienen zum Hochladen von Vorabversionen, die Tester installieren können. Verwenden Sie eine dieser Phasen für den ersten Upload einer neuen Erweiterung.

      Die stable Phase wird für öffentliche Versionen verwendet, die auf Extensions Hub veröffentlicht werden sollen. Durch das Hochladen einer stable Version wird automatisch eine Überprüfung eingeleitet. Wenn diese 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 Vorabversion einer Erweiterung hochladen, werden die Stufen- und Upload-Nummer an die Version angehängt. Wenn extension.yaml beispielsweise Version 1.0.1 angibt und Sie einen Release Candidate hochladen, würde dies zu Version 1.0.1-rc.0 führen; Das Hochladen eines anderen Release Candidate derselben Version würde die Anzahl automatisch erhöhen, was zu 1.0.1-rc.1 und so weiter führt.

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

  • Mit der Konsole : Benutzer 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 mit Ihren Testern teilen.

  • Mit der CLI : Benutzer können die Erweiterung installieren, indem sie die Erweiterungs-ID-Zeichenfolge an den Befehl ext:install übergeben:

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

Laden Sie eine aktualisierte Version hoch

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 voranzutreiben. Wenn Sie eine neue Version hochladen, werden Benutzer, die eine ältere Version Ihrer Erweiterung installiert haben, in der Firebase-Konsole zum Upgrade aufgefordert.

So laden Sie ein Update hoch:

  1. Optional : Übertragen Sie Ihren Code in ein öffentliches 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 diese bereits für Ihre Erweiterung konfiguriert wurden. Wenn Sie Ihre Repository-Struktur inzwischen umgestaltet oder auf ein neues Repository migriert haben, können Sie diese mit den Befehlsargumenten --root und --repo ändern.

    Lokale Quelle

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

Reichen Sie eine Erweiterung zur Veröffentlichung ein

Wenn Sie bereit sind, Ihre Erweiterung öffentlich zu veröffentlichen:

  1. Übertragen Sie Ihren Code in ein öffentliches Git-Repository. (Erforderlich für öffentliche Veröffentlichungen.)

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

    firebase ext:dev:upload your_publisher_id/your_extension_id
    
  3. Wenn Sie zuvor 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 die Erweiterung in Ihrem Publisher-Dashboard und klicken Sie auf Im Erweiterungs-Hub veröffentlichen .

Nach der Übermittlung kann die Überprüfung einige Tage dauern. Bei Annahme wird die Erweiterung im Extensions Hub veröffentlicht. Bei einer Ablehnung erhalten Sie eine Nachricht mit einer Begründung; Anschließend können Sie die gemeldeten Probleme beheben und erneut zur Überprüfung einreichen.

Um die Überprüfung zu beschleunigen und Ihre Chancen zu erhöhen, beim ersten Versuch zu bestehen, überprüfen Sie vor dem Absenden noch einmal Folgendes:

  • Sie haben Ihre Erweiterung und den Installationsprozess gründlich getestet.
  • Ihre Dokumentation ist vollständig und korrekt und wird in der Firebase-Konsole gut dargestellt.
  • Ihr Herausgebername und Ihr Branding weisen Sie eindeutig und genau als Herausgeber aus.
  • Der Name, die Beschreibung und das Symbol Ihrer Erweiterung geben den Zweck Ihrer Erweiterung klar und genau wieder.
  • Sie haben hilfreiche und genaue Tags angewendet.
  • Sie haben in extension.yaml alle von Ihnen verwendeten Google- und Nicht-Google-APIs sowie alle von Ihrer Erweiterung ausgegebenen Ereignistypen deklariert.
  • Sie fordern nur Zugriff auf die Rollen an, die für die Funktion der Erweiterung erforderlich sind, und Sie haben den Benutzern klar erklärt, warum Sie diesen Zugriff benötigen.
  • Ihre Quelldateien unterliegen eindeutig den Bedingungen von Apache-2.0 .

Verwalten Sie hochgeladene und veröffentlichte Erweiterungen

Listen Sie Ihre hochgeladenen Erweiterungen auf

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

Publisher-Dashboard

Sehen Sie sie sich im Publisher-Dashboard an.

Firebase-CLI

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

firebase ext:dev:list your_publisher_id

Sehen Sie sich die Nutzung Ihrer hochgeladenen Erweiterungen an

Um die Nutzung der Erweiterungen anzuzeigen, die Sie unter Ihrer Publisher-ID hochgeladen haben, führen Sie einen der folgenden Schritte aus:

Publisher-Dashboard

Das Publisher-Dashboard verfügt über kumulative Nutzungsmetriken für alle Ihre Erweiterungen und individuelle Metriken für jede Erweiterung.

Firebase-CLI

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

firebase ext:dev:usage your_publisher_id

Eine Version einer Erweiterung verwerfen

Irgendwann möchten Sie möglicherweise eine alte Version Ihrer Erweiterung verwerfen. Wenn Sie beispielsweise eine neue Version veröffentlichen, die einen kritischen Fehler behebt oder eine Abhängigkeit mit einem wichtigen Sicherheitsupdate aktualisiert, ist es wichtig, neue Benutzer daran zu hindern, eine alte Version zu installieren, und bestehende Benutzer zum Upgrade zu ermutigen.

Um eine Version einer Erweiterung abzulehnen, führen Sie einen der folgenden Schritte aus:

Publisher-Dashboard

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

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 Extensions Hub aufgeführt und können nicht installiert werden. Benutzern, deren Projekte eine veraltete Version installiert haben, wird eine Meldung angezeigt, die sie zum Upgrade auffordert. Sie können die Erweiterung in der Zwischenzeit weiterhin verwenden und neu konfigurieren.

Wenn jede Version einer Erweiterung veraltet ist, gilt die Erweiterung als veraltet und wird aus dem Extensions Hub entfernt. Durch das Hochladen einer neuen Version einer veralteten Erweiterung wird automatisch eine Überprüfung eingeleitet und diese nach Annahme erneut auf Extensions Hub veröffentlicht.

Um eine veraltete Version rückgängig zu machen, 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: Fehlerbehebung bei Buildfehlern

Wenn Sie Ihre Erweiterung hochladen, erstellt das Backend zunächst Ihren Quellcode mithilfe des folgenden Prozesses:

  1. Klont Ihr GitHub-Repository und checkt die angegebene Quellreferenz aus.

  2. Installiert NPM-Abhängigkeiten, indem npm clean-install in jedem in extension.yaml angegebenen Funktionsquellverzeichnis ausgeführt wird (siehe sourceDirectory in Cloud Function resources ).

    Beachte das Folgende:

    • Jede package.json Datei muss über eine entsprechende package-lock.json -Datei verfügen. Weitere Informationen finden Sie unter npm-ci .

    • Nachinstallationsskripts werden während der Abhängigkeitsinstallation nicht ausgeführt. Wenn Ihr Quellcode-Build auf Post-Install-Skripten basiert, überarbeiten Sie ihn vor dem Hochladen.

  3. Erstellt Ihren Code durch Ausführen von npm run build in jedem in extension.yaml angegebenen Funktionsquellverzeichnis.

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

Wenn beim Hochladen Ihrer Erweiterung Build-Fehler auftreten, replizieren Sie die oben genannten Build-Schritte lokal in einem neuen Verzeichnis, bis keine Fehler mehr auftreten, und versuchen Sie dann erneut, sie hochzuladen.