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:
Mit der Firebase Emulator Suite können Sie Ihre Erweiterung entwickeln und schnell iterieren.
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
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.
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.
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:
Optional: Committen Sie Ihren Code in ein öffentliches GitHub-Repository.
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
undrc
(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 einestable
-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 beispielsweiseextension.yaml
die Version 1.0.1 angibt und Sie einen Release-Kandidaten hochladen, wird die Version1.0.1-rc.0
daraus. Wenn Sie einen weiteren Release-Kandidaten derselben Version hochladen, wird die Anzahl automatisch erhöht, sodass1.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:
Optional: Committen Sie Ihren Code in einem öffentlichen Git-Repository.
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:
Committen Sie Ihren Code in einem öffentlichen Git-Repository. (Erforderlich für öffentliche Releases.)
Führen Sie den Befehl
ext:dev:upload
der Firebase CLI aus und geben Siestable
als Release-Phase an:firebase ext:dev:upload your_publisher_id/your_extension_id
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
- Klicken Sie auf dem Dashboard des Publishers auf die Erweiterung, um die Detailansicht zu öffnen.
- Wählen Sie die Version aus, die Sie einstellen möchten.
- 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:
Ihr GitHub-Repository wird geklont und die angegebene Quellreferenz wird herausgecheckt.
Installiert NPM-Abhängigkeiten, indem
npm clean-install
in jedem inextension.yaml
angegebenen Funktionsquellenverzeichnis ausgeführt wird (siehesourceDirectory
in den Ressourcen für Cloud-Funktionen).Wichtige Hinweise:
Jede
package.json
-Datei muss einer entsprechendenpackage-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.
Erstellt den Code, indem
npm run build
in jedem inextension.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.