Przegląd wydawcy rozszerzenia

Rozszerzenie Firebase wykonuje określone zadanie lub zestaw zadań w odpowiedzi na żądania HTTP lub zdarzenia aktywowane przez inne usługi Firebase i Google, takie jak Komunikacja w chmurze Firebase, Cloud Firestore czy Pub/Sub.

Możesz tworzyć własne rozszerzenia do użytku osobistego lub udostępniać je innym użytkownikom w Centrum rozszerzeń Firebase. Rozszerzenie może na przykład wykonywać określone zadania, których Twoja aplikacja regularnie potrzebuje, lub ułatwiać dostęp do interfejsów API Twojej firmy. Po utworzeniu rozszerzenia możesz je udostępnić innym. Mogą oni zainstalować i skonfigurować rozszerzenie do użycia w swoich projektach Firebase.

Struktura rozszerzenia

Rozszerzenie składa się z 3 głównych elementów:

  • Kod Cloud Functions w języku JavaScript lub w języku TypeScript
  • metadane opisujące Twoje rozszerzenie;
  • Dokumentacja ułatwiająca użytkownikom konfigurowanie rozszerzenia i korzystanie z niego

Aby opracować rozszerzenie, musisz połączyć te komponenty w taką strukturę:

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
  • Katalog functions zawiera kod funkcji Cloud Functions w JavaScript lub TypeScript. Jest to kod wykonujący zadania rozszerzenia w odpowiedzi na zdarzenia wywoływane przez Firebase i usługi Google.
  • Plik extension.yaml zawiera metadane rozszerzenia, takie jak jego wyzwalacze i role dostępu IAM, a także wszystkie parametry, które chcesz udostępnić użytkownikom do konfiguracji.
  • Pliki PREINSTALL, POSTINSTALLCHANGELOG stanowią minimalną dokumentację, którą musi zawierać Twoja rozszerzenie. Te pliki pomagają użytkownikom dowiedzieć się, do czego służy Twoje rozszerzenie, jak z niego korzystać i jakie zmiany zostały w nim wprowadzone. Musisz też podać ikonę, która pomoże użytkownikom rozpoznać Twoje rozszerzenie. Konsole Firebase, Firebase CLI i Centrum rozszerzeń wyświetlają zawartość tych plików, gdy użytkownicy przeglądają, instalują i zarządzają rozszerzeniem.

Po utworzeniu rozszerzenia możesz zainstalować je w projekcie za pomocą interfejsu wiersza poleceń Firebase lub opublikować w Centrum rozszerzeń, gdzie każdy może je znaleźć i zainstalować w swoich projektach.

Z czym może wchodzić w interakcję moje rozszerzenie?

Ponieważ rozszerzenie Firebase działa z wykorzystaniem Cloud Functions, możesz zastanowić się nad możliwymi integracjami na 2 sposoby: Które usługi mogą aktywować funkcje mojego rozszerzenia i Z którymi usługami mogą współdziałać funkcje mojego rozszerzenia po ich uruchomieniu?

Obsługiwane funkcje aktywatora

Aktywatory ręczne

Po pierwsze, możesz ręcznie uruchomić funkcję. Rozszerzenia Firebase i Cloud Functions obsługują 2 sposoby ręcznego wywoływania funkcji:

  • Aktywatory HTTP: wdrażanie funkcji w punkcie końcowym HTTP
  • Funkcje dostępne do wywołania: możesz wywoływać funkcje w Cloud Functions bezpośrednio z kodu aplikacji na iOS, Androida lub klienta internetowego, korzystając z pakietów SDK klienta Firebase.

Dzięki udostępnieniu punktów końcowych HTTP z rozszerzenia możesz zintegrować je z dowolną usługą internetową, która obsługuje webhooki. Dzięki funkcjom wywoływanym użytkownicy, którzy zainstalują Twoje rozszerzenie, mogą używać pakietów SDK Firebase jako biblioteki klienta do uzyskiwania dostępu do interfejsu API implementowanego przez rozszerzenie.

Aktywatory usługi Firebase

Większość usług Firebase emituje zdarzenia, które mogą aktywować funkcje Cloud Functions w rozszerzeniu.

  • Analytics: funkcje są wywoływane, gdy Analytics rejestruje zdarzenie.
  • Rozpowszechnianie aplikacji: aktywuj funkcje, gdy Rozpowszechnianie aplikacji uruchomi alert.
  • Uwierzytelnianie: funkcje wywoływane, gdy użytkownicy tworzą i usuwają konta.
  • Cloud Firestore: funkcje są wywoływane, gdy strony są tworzone, aktualizowane lub usuwane.
  • Cloud Storage: aktywuj funkcje, gdy obiekty są przesyłane, archiwizowane lub usuwane z zasobników
  • Crashlytics:aktywuje działanie po uruchomieniu alertu przez Crashlytics.
  • Monitorowanie wydajności: funkcje są wywoływane, gdy monitorowanie wydajności uruchamia alert.
  • Baza danych czasu rzeczywistego: aktywuj funkcje podczas tworzenia, aktualizowania lub usuwania danych.
  • Zdalna konfiguracja: funkcje są wywoływane, gdy nastąpi zmiana parametru.
  • Laboratorium: aktywuj funkcje po uruchomieniu alertu Laboratorium.

Aktywatory usługi Google Cloud

Rozszerzenie może też zawierać funkcje, które aktywują kilka usług Google Cloud spoza Firebase:

  • Cloud Pub/Sub: rozszerzenie może zawierać funkcje, które są wywoływane, gdy zdarzenia są publikowane w konfigurowalnym temacie Pub/Sub.
  • Cloud Scheduler: rozszerzenie może zawierać funkcje, które działają zgodnie z określonym harmonogramem.
  • Cloud Tasks: rozszerzenie może zawierać funkcje, które można ustawić w kolejce za pomocą Cloud Tasks. Rozszerzenia Firebase korzystają z tej funkcji, aby umożliwić autorom tworzenie funkcji, które reagują na zdarzenia „cyklu życia” rozszerzenia: jego pierwsze zainstalowanie w projekcie, uaktualnienie do nowej wersji i zmiana konfiguracji.
  • Eventarc: rozszerzenie może zawierać funkcje, które są uruchamiane po opublikowaniu zdarzeń na konfigurowalnym kanale Eventarc. Z drugiej strony, rozszerzenie może publikować własne zdarzenia na kanale Eventarc, aby umożliwić użytkownikom definiowanie własnych funkcji, które są uruchamiane przez zdarzenia rozszerzenia.

Obsługiwane funkcje

Po aktywowaniu funkcji w Cloud Functions dla rozszerzenia zakres możliwych integracji jest zwykle otwarty. Oto kilka najważniejszych funkcji, które możesz wykonywać za pomocą funkcji w Cloud Functions:

  • Może odczytywać i zapisywać dowolne usługi Firebase lub Google Cloud, które korzystają z obsługiwanej roli uprawnień, a także w inny sposób korzystać z nich.
  • Możesz korzystać z dowolnej usługi zewnętrznej, która udostępnia interfejs API internetowy.
  • Jeśli udostępniasz internetowy interfejs API, możesz korzystać z usług niestandardowych.
  • Uruchamiać większość bibliotek JavaScript, w tym TensorFlow.js, Express.js itd.

Jak utworzyć rozszerzenie

W samouczku Wprowadzenie znajdziesz informacje o procesie tworzenia, testowania i publikowania rozszerzenia. To najlepszy sposób na naukę tworzenia rozszerzeń.

Pierwsze kroki

Po zapoznaniu się z tym przewodnikiem możesz sięgnąć po przewodniki dotyczące poszczególnych tematów, które opisują poszczególne zadania związane z tworzeniem własnych rozszerzeń: