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 na potrzeby własne 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 komponentów:
- kod funkcji w Cloud Functions w języku JavaScript lub TypeScript,
- metadane opisujące Twoje rozszerzenie;
- dokumentacja, która pomoże użytkownikom skonfigurować i używać rozszerzenia;
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. To kod, który wykonuje 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
,POSTINSTALL
iCHANGELOG
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 je zainstalować w projekcie za pomocą 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?
Rozszerzenie Firebase działa przy użyciu funkcji Cloud Functions, więc możliwe integracje możesz rozpatrywać na 2 sposoby: które usługi mogą wywoływać funkcje mojego rozszerzenia? i z którymi usługami mogą wchodzić w interakcje funkcje mojego rozszerzenia po jego wywołaniu?
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 wywoływane: możesz wywoływać funkcje Cloud Functions bezpośrednio z kodu klienta na iOS, Androida lub klienta internetowego za pomocą 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: funkcje wywoływane, gdy rozpowszechnianie aplikacji powoduje 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: funkcje są aktywowane, gdy obiekty są przesyłane, archiwizowane lub usuwane z zasobników.
- Crashlytics: funkcje uruchamiają się, gdy Crashlytics uruchamia alert.
- Monitorowanie wydajności: funkcje są wywoływane, gdy monitorowanie wydajności uruchamia alert.
- Baza danych czasu rzeczywistego: funkcje są wywoływane, gdy dane są tworzone, aktualizowane lub usuwane.
- Zdalna konfiguracja: funkcje są wywoływane, gdy nastąpi zmiana parametru.
- Test Lab: funkcje wyzwalające, gdy Test Lab uruchamia alert
Aktywatory usług Google Cloud
Rozszerzenie może też zawierać funkcje, które aktywują kilka usług Google Cloud, które nie są usługami 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 zadanym 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 rozszerzeń pisanie funkcji reagujących na zdarzenia „cyklu życia” rozszerzenia: jego pierwsze zainstalowanie w projekcie, uaktualnienie do nowej wersji i konfigurację.
- 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 wywołaniu funkcji w Cloud Functions rozszerzenia zakres możliwych integracji jest praktycznie nieograniczony. Oto kilka najważniejszych funkcji, które możesz wykonywać za pomocą funkcji w Cloud Functions:
- Czytanie, zapisywanie i w inny sposób wchodzenie w interakcję z usługami Firebase lub Google Cloud, które korzystają z obsługiwanych ról uprawnień IAM.
- Możesz korzystać z dowolnej usługi zewnętrznej, która udostępnia interfejs API internetowy.
- Jeśli udostępniasz interfejs API internetowy, współpracuj z usługami niestandardowymi.
- Uruchamianie większości bibliotek JavaScript, w tym TensorFlow.js, Express.js itp.
Jak utworzyć rozszerzenie
W samouczku Wprowadzenie znajdziesz informacje o procesie tworzenia, testowania i publikowania rozszerzenia. To najlepszy sposób na naukę tworzenia rozszerzeń.
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ń:
- Tworzenie funkcji w rozszerzeniu
- Używanie parametrów w rozszerzeniu
- Konfigurowanie odpowiedniego dostępu dla rozszerzenia
- Odpowiadanie na zdarzenia cyklu życia rozszerzenia
- Dodawanie elementów wywołujących w rozszerzeniu
- Tworzenie dokumentacji dla użytkowników rozszerzenia
- Publikowanie rozszerzenia w Centrum rozszerzeń
- Pełne informacje o pliku extension.yaml