Übersicht über den Erweiterungsherausgeber

Eine Firebase-Erweiterung führt eine bestimmte Aufgabe oder eine Reihe von Aufgaben als Reaktion auf HTTP-Anfragen oder auslösende Ereignisse von anderen Firebase- und Google-Produkten wie Firebase Cloud Messaging, Cloud Firestore oder Pub/Sub aus.

Sie können Ihre eigene Erweiterung für den persönlichen Gebrauch erstellen oder im Firebase Extensions Hub mit der Welt teilen. Beispielsweise kann Ihre Erweiterung eine bestimmte Aufgabe ausführen, die Ihre App regelmäßig benötigt, oder den Zugriff auf eine der APIs Ihres Unternehmens erleichtern. Nachdem Sie Ihre Erweiterung erstellt haben, können Sie sie mit anderen teilen. Diese Benutzer können die Erweiterung für die Verwendung in ihren eigenen Firebase-Projekten installieren und konfigurieren.

Aufbau einer Erweiterung

Sie können sich eine Erweiterung so vorstellen, dass sie aus drei Hauptkomponenten besteht:

  • Cloud Functions-Code in JavaScript oder TypeScript
  • Metadaten, die Ihre Erweiterung beschreiben
  • Dokumentation, die Ihren Benutzern hilft, Ihre Erweiterung zu konfigurieren und zu verwenden

Um eine Erweiterung zu entwickeln, fügen 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 functions enthält Ihren Cloud Functions-Code in JavaScript oder TypeScript. Dies ist der Code, der die Aufgaben der Erweiterung als Reaktion auf Ereignisse ausführt, die von Firebase- und Google-Diensten ausgelöst werden.
  • Die Datei extension.yaml enthält Metadaten zu Ihrer Erweiterung, z. B. ihre Auslöser und IAM-Zugriffsrollen, sowie alle Parameter, die vom Benutzer konfigurierbar sein sollen.
  • Die Dateien PREINSTALL , POSTINSTALL und CHANGELOG sind die Mindestdokumentation, die Ihre Erweiterung haben muss. Mithilfe dieser Dateien erfahren Ihre Benutzer, was Ihre Erweiterung tut, wie sie verwendet wird und welche Aktualisierungen Sie vorgenommen haben. Sie sollten außerdem ein Symbol bereitstellen, damit Benutzer Ihre Erweiterung leichter erkennen können. Die Firebase-Konsole, die Firebase-CLI und der Extensions Hub zeigen den Inhalt dieser Dateien an, wenn Benutzer Ihre Erweiterung erkunden, installieren und verwalten.

Nachdem Sie Ihre Erweiterung erstellt haben, können Sie sie mit der Firebase-CLI in einem Projekt installieren oder im Extensions Hub veröffentlichen, wo jeder sie entdecken und in seinen Projekten installieren kann.

Mit welchen Produkten kann meine Erweiterung interagieren?

Da eine Firebase-Erweiterung ihre Arbeit über Cloud-Funktionen erledigt, kann man sich die Frage nach möglichen Integrationen auf zwei Arten vorstellen: Welche Produkte können die Funktionen meiner Erweiterung auslösen? und Mit welchen Produkten können die Funktionen meiner Erweiterung nach der Auslösung interagieren?

Unterstützte Funktionsauslöser

Manuelle Auslöser

Zunächst können Sie eine Funktion manuell auslösen. Firebase-Erweiterungen und Cloud-Funktionen unterstützen zwei Möglichkeiten zum manuellen Auslösen von Funktionen:

  • HTTP-Trigger: Stellen Sie eine Funktion auf einem HTTP-Endpunkt bereit
  • Aufrufbare Funktionen: Rufen Sie Ihre Cloud-Funktionen mithilfe der Firebase-Client-SDKs direkt von Ihrem iOS-, Android- oder Web-Client-Code aus auf.

Durch die Bereitstellung von HTTP-Endpunkten Ihrer Erweiterung kann Ihre Erweiterung potenziell in jeden Webdienst integriert werden, der Webhooks unterstützt. Mit aufrufbaren Funktionen können Benutzer, die Ihre Erweiterung installieren, die Firebase SDKs als Clientbibliothek für den Zugriff auf die von Ihrer Erweiterung implementierte API verwenden.

Auslöser des Firebase-Dienstes

Die meisten Firebase-Produkte geben Ereignisse aus, die die Cloud-Funktionen einer Erweiterung auslösen können.

  • Analytics: Triggerfunktionen, wenn Analytics ein Ereignis protokolliert
  • App-Verteilung: Triggerfunktionen, wenn App-Verteilung eine Warnung auslöst
  • Authentifizierung: Funktionen auslösen, wenn Benutzer Konten erstellen und löschen
  • Cloud Firestore: Triggerfunktionen, wenn Seiten erstellt, aktualisiert oder gelöscht werden
  • Cloud-Speicher : Triggerfunktionen, wenn Objekte hochgeladen, archiviert oder aus Buckets gelöscht werden
  • Crashlytics: Triggerfunktionen, wenn Crashlytics eine Warnung auslöst
  • Leistungsüberwachung: Triggerfunktionen, wenn die Leistungsüberwachung eine Warnung auslöst
  • Echtzeitdatenbank: Triggerfunktionen, wenn Daten erstellt, aktualisiert oder gelöscht werden
  • Remote Config: Triggerfunktionen, wenn ein Parameter aktualisiert wird
  • Testlabor: Triggerfunktionen, wenn das Testlabor eine Warnung auslöst

Auslöser des Google Cloud-Dienstes

Eine Erweiterung kann auch Funktionen umfassen, die mehrere Nicht-Firebase-Google Cloud-Dienste auslösen:

  • Cloud Pub/Sub : Eine Erweiterung kann Funktionen enthalten, die ausgelöst werden, wenn Ereignisse in einem konfigurierbaren Pub/Sub-Thema gepostet werden.
  • Cloud Scheduler : Eine Erweiterung kann Funktionen umfassen, die nach einem festgelegten Zeitplan ausgeführt werden
  • Cloud Tasks : Eine Erweiterung kann Funktionen umfassen, die mithilfe von Cloud Tasks in die Warteschlange gestellt werden können. Firebase Extensions nutzt diese Funktion, um Ihnen als Erweiterungsautor die Möglichkeit zu geben, Funktionen zu schreiben, die auf die „Lebenszyklus“-Ereignisse einer Erweiterung reagieren: zum ersten Mal in einem Projekt installiert werden, auf eine neue Version aktualisiert werden und neu konfiguriert werden.
  • Eventarc : Eine Erweiterung kann Funktionen enthalten, die ausgelöst werden, wenn Ereignisse auf einem konfigurierbaren Eventarc-Kanal veröffentlicht werden. Umgekehrt kann eine Erweiterung ihre eigenen Ereignisse in einem Eventarc-Kanal veröffentlichen, um es Benutzern zu ermöglichen, ihre eigenen Funktionen zu definieren, die von den Ereignissen einer Erweiterung ausgelöst werden.

Unterstützt von Funktionen

Sobald die Cloud-Funktion einer Erweiterung ausgelöst wurde, ist die Palette möglicher Integrationen grundsätzlich offen. Hier sind einige Highlights dessen, was Sie mit einer Cloud-Funktion tun können:

  • Lesen, schreiben und interagieren Sie anderweitig mit jedem Firebase- oder Google Cloud- Dienst, der eine unterstützte IAM-Rolle verwendet.
  • Arbeiten Sie mit jedem Drittanbieterdienst zusammen, der eine Web-API bereitstellt.
  • Arbeiten Sie mit Ihren benutzerdefinierten Diensten , wenn Sie eine Web-API bereitstellen.
  • Führen Sie die meisten JavaScript-Bibliotheken aus, einschließlich TensorFlow.js , Express.js usw.

So erstellen Sie eine Erweiterung

Das Tutorial „Erste Schritte“ führt Sie durch den Prozess des Erstellens, Testens und Veröffentlichens einer vollständigen Erweiterung und ist die empfohlene Methode, um zu lernen, wie man eine solche erstellt.

Loslegen

Nachdem Sie den Leitfaden „Erste Schritte“ einmal durchgelesen haben, können Sie in den einzelnen Themenleitfäden nachschlagen, in denen die einzelnen Aufgaben beim Erstellen Ihrer eigenen Erweiterung erläutert werden: