Rozszerzenie Firebase wykonuje określone zadanie lub zestaw zadań w odpowiedzi na żądania HTTP lub zdarzenia aktywujące z innych usług Firebase i Google, takich jak Komunikacja w chmurze Firebase, Cloud Firestore czy Pub/Sub.
Możesz utworzyć własne rozszerzenie do użytku osobistego lub udostępnić je innym w Centrum rozszerzeń w Firebase. Rozszerzenie może na przykład wykonywać określone zadanie, które jest regularnie potrzebne Twojej aplikacji, lub ułatwiać dostęp do jednego z interfejsów API Twojej firmy. Po utworzeniu rozszerzenia możesz udostępnić je innym. Użytkownicy mogą zainstalować i skonfigurować rozszerzenie do użycia we własnych projektach Firebase.
Struktura rozszerzenia
Rozszerzenie można podzielić na 3 główne komponenty:
- kod Cloud Functions w JavaScript lub TypeScript,
- metadane opisujące rozszerzenie,
- dokumentacja, która pomoże użytkownikom skonfigurować i używać rozszerzenia.
Aby utworzyć rozszerzenie, musisz połączyć te komponenty w następującą 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
functionszawiera kod Cloud Functions w JavaScript lub TypeScript. Jest to kod, który wykonuje zadania rozszerzenia w odpowiedzi na zdarzenia wywoływane przez usługi Firebase i Google. - Plik
extension.yamlzawiera metadane rozszerzenia, takie jak jego aktywatory i role dostępu IAM, a także wszystkie parametry, które mają być konfigurowane przez użytkownika. - Pliki
PREINSTALL,POSTINSTALLiCHANGELOGto minimalna dokumentacja, którą musi zawierać rozszerzenie. Te pliki pomagają użytkownikom dowiedzieć się, co robi rozszerzenie, jak go używać i jakie aktualizacje zostały wprowadzone. Warto też dodać ikonę, która pomoże użytkownikom rozpoznać rozszerzenie. Konsola Firebase, wiersz poleceń Firebase i Centrum rozszerzeń wyświetlają zawartość tych plików, gdy użytkownicy przeglądają, instalują i zarządzają rozszerzeniem.
Po utworzeniu rozszerzenia możesz użyć wiersza poleceń Firebase, aby zainstalować je w projekcie lub opublikować w Centrum rozszerzeń, gdzie każdy może je znaleźć i zainstalować w swoich projektach.
Z jakimi usługami może współpracować moje rozszerzenie?
Rozszerzenie Firebase działa za pomocą Cloud Functions, dlatego pytanie o możliwe integracje można rozpatrywać na 2 sposoby: Jakie usługi mogą aktywować funkcje mojego rozszerzenia? i Po aktywowaniu, z jakimi usługami mogą współpracować funkcje mojego rozszerzenia?
Obsługiwane aktywatory funkcji
Aktywatory ręczne
Przede wszystkim możesz ręcznie aktywować funkcję. Rozszerzenia w Firebase i Cloud Functions obsługują 2 sposoby ręcznego aktywowania funkcji:
- Aktywatory HTTP: wdrożenie funkcji w punkcie końcowym HTTP.
- Funkcje wywoływane: wywoływanie Cloud Functions bezpośrednio z kodu klienta iOS, Androida lub internetowego za pomocą pakietów SDK klienta Firebase.
Dzięki udostępnianiu punktów końcowych HTTP z rozszerzenia może ono integrować się z dowolną usługą internetową, która obsługuje webhooki. W przypadku funkcji wywoływanych 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ług Firebase
Większość usług Firebase emituje zdarzenia, które mogą aktywować Cloud Functions rozszerzenia.
- Analytics: aktywowanie funkcji, gdy Analytics rejestruje zdarzenie.
- Rozpowszechnianie aplikacji: aktywowanie funkcji, gdy Rozpowszechnianie aplikacji wywołuje alert.
- Uwierzytelnianie: aktywowanie funkcji, gdy użytkownicy tworzą i usuwają konta.
- Cloud Firestore: aktywowanie funkcji, gdy strony są tworzone, aktualizowane lub usuwane.
- Cloud Storage: aktywowanie funkcji, gdy obiekty są przesyłane, archiwizowane lub usuwane z zasobników.
- Crashlytics: aktywowanie funkcji, gdy Crashlytics wywołuje alert.
- Monitorowanie wydajności: aktywowanie funkcji, gdy Monitorowanie wydajności wywołuje alert.
- Baza danych czasu rzeczywistego: aktywowanie funkcji, gdy dane są tworzone, aktualizowane lub usuwane.
- Zdalna konfiguracja: aktywowanie funkcji, gdy parametr jest aktualizowany.
- Laboratorium: aktywowanie Funkcji, gdy Laboratorium wywołuje alert.
Aktywatory usług Google Cloud
Rozszerzenie może też zawierać funkcje, które są aktywowane przez kilka usług Google Cloud innych niż Firebase:
- Cloud Pub/Sub: rozszerzenie może zawierać funkcje, które są aktywowane, gdy zdarzenia są publikowane w konfigurowalnym temacie Pub/Sub.
- Cloud Scheduler: rozszerzenie może zawierać funkcje, które są uruchamiane zgodnie z ustalonym harmonogramem.
- Cloud Tasks: rozszerzenie może zawierać funkcje, które można umieścić w kolejce za pomocą Cloud Tasks. Rozszerzenia w Firebase korzystają z tej funkcji, aby umożliwić Ci, jako autorowi rozszerzenia, pisanie funkcji, które reagują na zdarzenia cyklu życia rozszerzenia: pierwsze zainstalowanie w projekcie, uaktualnienie do nowej wersji i ponowne skonfigurowanie.
- Eventarc: rozszerzenie może zawierać funkcje, które są aktywowane, gdy zdarzenia są publikowane w konfigurowalnym kanale Eventarc. Z drugiej strony rozszerzenie może publikować własne zdarzenia w kanale Eventarc, aby umożliwić użytkownikom definiowanie własnych funkcji, które są aktywowane przez zdarzenia rozszerzenia.
Obsługiwane funkcje
Gdy Cloud Functions rozszerzenia zostanie aktywowana, zakres możliwych integracji jest zasadniczo nieograniczony. Oto kilka najważniejszych rzeczy, które możesz zrobić za pomocą Cloud Functions:
- Odczytywanie, zapisywanie i inne interakcje z dowolną usługą Firebase lub Google Cloud, która korzysta z obsługiwanej roli IAM.
- Współpraca z dowolną usługą innej firmy , która udostępnia interfejs API.
- Współpraca z usługami niestandardowymi , jeśli udostępniasz interfejs API.
- Uruchamianie większości bibliotek JavaScript, w tym TensorFlow.js, Express.js, itp.
Jak utworzyć rozszerzenie
Samouczek Pierwsze kroki przeprowadzi Cię przez proces tworzenia, testowania i publikowania kompletnego rozszerzenia. Jest to zalecany sposób na nauczenie się, jak je tworzyć.
Gdy przejdziesz przez przewodnik dla początkujących, możesz zapoznać się z poszczególnymi przewodnikami, które wyjaśniają każde z zadań związanych z tworzeniem własnego rozszerzenia:
- Pisanie funkcji dla rozszerzenia
- Używanie parametrów w rozszerzeniu
- Konfigurowanie odpowiedniego dostępu do rozszerzenia
- Reagowanie na zdarzenia cyklu życia rozszerzenia
- Dodawanie do rozszerzenia haków użytkownika
- Tworzenie dokumentacji użytkownika dla rozszerzenia
- Publikowanie rozszerzenia w Centrum rozszerzeń
- Pełna dokumentacja extension.yaml