Eine Firebase-Erweiterung führt eine bestimmte Aufgabe oder eine Reihe von Aufgaben als Reaktion auf HTTP-Anfragen oder ausgelöste Ereignisse von anderen Firebase- und Google-Produkten aus, z. B. Firebase Cloud Messaging, Cloud Firestore oder Pub/Sub.
Im Firebase Extensions Hub können Sie eigene Erweiterungen für den persönlichen Gebrauch oder zur Veröffentlichung erstellen. Ihre Erweiterung kann beispielsweise eine bestimmte Aufgabe ausführen, die Ihre App regelmäßig benötigt, oder den Zugriff auf eine der APIs Ihres Unternehmens erleichtern. Nachdem Sie die Erweiterung erstellt haben, können Sie sie für andere freigeben. Diese Nutzer können die Erweiterung installieren und für die Verwendung in ihren eigenen Firebase-Projekten konfigurieren.
Struktur einer Erweiterung
Eine Erweiterung besteht aus drei Hauptkomponenten:
- Cloud Functions-Code in JavaScript oder TypeScript
- Metadaten, die Ihre Erweiterung beschreiben
- Dokumentation, die Nutzern bei der Konfiguration und Verwendung Ihrer Erweiterung hilft
Zur Entwicklung einer Erweiterung setzen Sie diese Komponenten in der folgenden Struktur zusammen:
example-extension
├── functions
│ ├── integration-tests
│ │ ├── extensions
│ │ │ └── example-extension.env
│ │ ├── firebase.json
│ │ └── integration-test.spec.js
│ ├── index.js
│ └── package.json
├── README.md
├── PREINSTALL.md
├── POSTINSTALL.md
├── CHANGELOG.md
├── icon.png
└── extension.yaml
- Das Verzeichnis
functions
enthält Ihren Cloud Functions-Code in JavaScript oder TypeScript. Mit diesem Code werden die Aufgaben der Erweiterung als Reaktion auf Ereignisse ausgeführt, die von Firebase- und Google-Diensten ausgelöst werden. - Die
extension.yaml
-Datei enthält Metadaten zu Ihrer Erweiterung, z. B. ihre Trigger und IAM-Zugriffsrollen sowie alle Parameter, die vom Nutzer konfiguriert werden sollen. - Die Dateien
PREINSTALL
,POSTINSTALL
undCHANGELOG
sind die Mindestdokumente für Ihre Erweiterung. Anhand dieser Dateien erfahren Nutzer, welche Funktion Ihre Erweiterung hat, wie sie verwendet wird und welche Aktualisierungen Sie vorgenommen haben. Sie sollten auch ein Symbol angeben, damit Nutzer Ihre Erweiterung erkennen. In der Firebase Console, der Firebase CLI und im Extensions Hub wird der Inhalt dieser Dateien angezeigt, wenn Nutzer Ihre Erweiterung ansehen, installieren und verwalten.
Nachdem Sie die Erweiterung erstellt haben, können Sie sie mit der Firebase CLI in einem Projekt installieren oder im Extensions Hub veröffentlichen, wo sie von allen gefunden und in ihren Projekten installiert werden kann.
Mit welchen Produkten kann meine Erweiterung interagieren?
Da eine Firebase-Erweiterung mithilfe von Cloud Functions funktioniert, können Sie sich die Frage nach möglichen Integrationen auf zwei Arten stellen: Welche Produkte können die Funktionen meiner Erweiterung auslösen? und Mit welchen Produkten können die Funktionen meiner Erweiterung interagieren?
Unterstützte Funktionstrigger
Manuelle Trigger
Zuerst können Sie eine Funktion manuell auslösen. Firebase-Erweiterungen und Cloud Functions unterstützen zwei Möglichkeiten zum manuellen Auslösen von Funktionen:
- HTTP-Trigger: Funktion an einem HTTP-Endpunkt bereitstellen
- Aufrufbare Funktionen: Sie können Ihre Cloud Functions direkt über Ihren iOS-, Android- oder Webclientcode mithilfe der Firebase-Client-SDKs aufrufen.
Wenn Sie HTTP-Endpunkte aus Ihrer Erweiterung freigeben, kann sie mit jedem Webdienst integriert werden, der Webhooks unterstützt. Mit aufrufbaren Funktionen können Nutzer, die Ihre Erweiterung installieren, die Firebase SDKs als Clientbibliothek verwenden, um auf die von Ihrer Erweiterung implementierte API zuzugreifen.
Firebase-Diensttrigger
Die meisten Firebase-Produkte senden Ereignisse, die die Cloud Functions einer Erweiterung auslösen können.
- Analytics:Funktionen auslösen, wenn in Analytics ein Ereignis protokolliert wird
- App-Bereitstellung:Funktionen auslösen, wenn die App-Bereitstellung eine Benachrichtigung auslöst
- Authentifizierung:Funktionen auslösen, wenn Nutzer Konten erstellen und löschen
- Cloud Firestore:Funktionen auslösen, wenn Seiten erstellt, aktualisiert oder gelöscht werden
- Cloud Storage: Funktionen werden ausgelöst, wenn Objekte in Bucket hochgeladen, archiviert oder daraus gelöscht werden.
- Crashlytics:Funktionen auslösen, wenn Crashlytics eine Benachrichtigung auslöst
- Leistungsüberwachung:Funktionen auslösen, wenn die Leistungsüberwachung eine Benachrichtigung auslöst
- Echtzeitdatenbank:Funktionen werden ausgelöst, wenn Daten erstellt, aktualisiert oder gelöscht werden.
- Remote Config:Funktionen auslösen, wenn ein Parameter aktualisiert wird
- Test Lab:Funktionen auslösen, wenn Test Lab eine Benachrichtigung auslöst
Google Cloud-Diensttrigger
Eine Erweiterung kann auch Funktionen enthalten, die mehrere Google Cloud-Dienste auslösen, die nicht zu Firebase gehören:
- Cloud Pub/Sub: Eine Erweiterung kann Funktionen enthalten, die ausgelöst werden, wenn Ereignisse an ein konfigurierbares Pub/Sub-Thema gesendet werden.
- Cloud Scheduler: Eine Erweiterung kann Funktionen enthalten, die nach einem festgelegten Zeitplan ausgeführt werden.
- Cloud Tasks: Eine Erweiterung kann Funktionen enthalten, die über Cloud Tasks in eine Warteschlange gestellt werden können. Mit dieser Funktion können Sie als Entwickler von Firebase-Erweiterungen Funktionen schreiben, die auf die Lebenszyklusereignisse einer Erweiterung reagieren: die Erstinstallation in einem Projekt, das Upgrade auf eine neue Version und die Neukonfiguration.
- Eventarc: Eine Erweiterung kann Funktionen enthalten, die ausgelöst werden, wenn Ereignisse in einem konfigurierbaren Eventarc-Kanal veröffentlicht werden. Umgekehrt kann eine Erweiterung eigene Ereignisse in einem Eventarc-Kanal veröffentlichen, damit Nutzer eigene Funktionen definieren können, die durch Ereignisse einer Erweiterung ausgelöst werden.
Von Funktionen unterstützt
Sobald die Cloud Functions-Funktion einer Erweiterung ausgelöst wurde, ist der Bereich der möglichen Integrationen im Allgemeinen offen. Hier sind einige Beispiele für die Möglichkeiten, die sich mit einer Cloud-Funktion bieten:
- Lesen, schreiben und anderweitig mit allen Firebase- oder Google Cloud-Diensten interagieren, die eine unterstützte IAM-Rolle verwenden.
- Mit jedem Drittanbieterdienst arbeiten, der eine Web-API bereitstellt
- Wenn Sie eine Web-API bereitstellen, arbeiten Sie mit Ihren benutzerdefinierten Diensten.
- Führen Sie die meisten JavaScript-Bibliotheken aus, einschließlich TensorFlow.js, Express.js usw.
Erweiterungen erstellen
Im Einstiegsleitfaden wird beschrieben, wie Sie eine vollständige Erweiterung erstellen, testen und veröffentlichen. Dies ist die empfohlene Methode, um zu lernen, wie Sie eine Erweiterung erstellen.
Nachdem Sie den Leitfaden zum Einstieg durchgelesen haben, können Sie die einzelnen Themenleitfäden aufrufen, in denen die einzelnen Aufgaben beim Erstellen einer eigenen Erweiterung erläutert werden:
- Funktionen für eine Erweiterung schreiben
- Parameter in einer Erweiterung verwenden
- Geeigneten Zugriff für eine Erweiterung einrichten
- Auf Lebenszyklus-Ereignisse von Erweiterungen reagieren
- Nutzer-Hooks zu einer Erweiterung hinzufügen
- Nutzerdokumentation für Ihre Erweiterung erstellen
- Erweiterung im Erweiterungs-Hub veröffentlichen
- Vollständige Referenz zu extension.yaml