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 Erweiterungs-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 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 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 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). Verbreiten Sie den Installationslink für weitere Tests und iterieren Sie, indem Sie nach Bedarf weitere Pre-Release-Versionen 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 Vorgang 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 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. Benennen Sie Ihre Erweiterungen im folgenden Format: 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 Quelldatei der Erweiterungsversion erstellen möchten. Dies kann ein Commit-Hash, ein Tag oder ein Verzweigungsname sein.

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

      In den Phasen alpha, beta und rc (Release-Kandidat) können Sie Vorabversionen hochladen, 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. Wenn Sie eine stable-Version hochladen, wird automatisch eine Überprüfung gestartet. 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 der Version die Phase und die Uploadnummer angehängt. Wenn beispielsweise extension.yaml die Version 1.0.1 angibt und Sie einen Release-Kandidaten hochladen, wird die Version 1.0.1-rc.0 daraus. Wenn Sie einen weiteren Release-Kandidaten derselben Version hochladen, wird die Anzahl automatisch erhöht, sodass 1.0.1-rc.1 daraus wird.

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 String mit der Erweiterungs-ID 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 inzwischen 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

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

  1. Committen Sie Ihren Code in einem öffentlichen 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 Ihre Chancen zu erhöhen, die Prüfung beim ersten Versuch zu 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 wird in der Firebase Console korrekt dargestellt.
  • 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 haben den Nutzern klar erklärt, warum Sie diesen 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 Dashboard für Publisher.

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 Dashboard für Publisher 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.

So stellen Sie eine Version einer Erweiterung ein:

Publisher-Dashboard

  1. Klicken Sie auf dem Dashboard des Publishers 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 sind nicht im Erweiterungs-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 noch einmal 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 Funktionsquellenverzeichnis ausgeführt wird (siehe sourceDirectory in den Ressourcen für Cloud-Funktionen).

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