Zanim zaczniesz używać emulatora Extensions w aplikacji, upepewnij się, że rozumiesz ogólny proces Firebase Local Emulator Suite workflow, oraz że zainstalujesz i skonfigurujesz Local Emulator Suite i zapoznasz się z jego poleceniami CLI.
Ten przewodnik zakłada też, że znasz Firebase Extensions i wiesz, jak ich używać w aplikacjach Firebase.
Co mogę zrobić za pomocą emulatora Extensions?
Dzięki emulatorowi Extensions możesz instalować rozszerzenia i zarządzać nimi w bezpiecznym środowisku lokalnym oraz lepiej poznać ich możliwości, minimalizując jednocześnie koszty rozliczeń. Emulator uruchamia funkcje rozszerzenia lokalnie, w tym funkcje wywoływane przez zdarzenia w tle, za pomocą emulatorów dla Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication i Pub/Sub, oraz funkcje wywoływane przez Eventarc zaimplementowane w Cloud Functions w wersji 2.
Wybierz projekt Firebase
Firebase Local Emulator Suite emuluje usługi w jednym projekcie Firebase.
Aby wybrać projekt, którego chcesz używać, przed uruchomieniem emulatorów w CLI uruchom w katalogu roboczym polecenie firebase use. Możesz też przekazać
flagę --project do każdego polecenia emulatora.
Local Emulator Suite obsługuje emulację rzeczywistych projektów Firebase i demonstracyjnych projektów.
| Typ projektu | Funkcje | Użycie z emulatorami |
|---|---|---|
| Rzeczywisty |
Rzeczywisty projekt Firebase to projekt, który został utworzony i skonfigurowany (najprawdopodobniej w Firebase konsoli). Rzeczywiste projekty mają zasoby na żywo, takie jak instancje bazy danych, zasobniki pamięci , funkcje lub inne zasoby skonfigurowane w tym projekcie Firebase. |
Podczas pracy z rzeczywistymi projektami Firebase możesz uruchamiać emulatory dla dowolnej lub wszystkich obsługiwanych usług. W przypadku usług, które nie są emulowane, Twoje aplikacje i kod będą wchodzić w interakcje z zasobem na żywo (instancją bazy danych, zasobnikiem pamięci, funkcją itp.). |
| Demonstracyjny |
Projekt demonstracyjny Firebase nie ma rzeczywistej konfiguracji Firebase ani zasobów na żywo. Dostęp do tych projektów jest zwykle uzyskiwany za pomocą codelabs lub innych samouczków. Identyfikatory projektów demonstracyjnych mają prefiks |
Podczas pracy z demonstracyjnymi projektami Firebase Twoje aplikacje i kod wchodzą w interakcje z emulatorami tylko. Jeśli aplikacja spróbuje wejść w interakcję z zasobem dla którego nie jest uruchomiony emulator, kod się nie wykona. |
Zalecamy używanie projektów demonstracyjnych wszędzie tam, gdzie to możliwe. W ten sposób możesz zapewnić im dostęp do tych korzyści:
- Łatwiejsza konfiguracja, ponieważ możesz uruchamiać emulatory bez tworzenia projektu Firebase.
- Większe bezpieczeństwo, ponieważ jeśli Twój kod przypadkowo wywoła nieemulowane (produkcyjne) zasoby, nie ma szans na zmianę danych, użycie i rozliczenia.
- Lepsza obsługa offline, ponieważ nie musisz uzyskiwać dostępu do internetu, aby pobrać konfigurację pakietu SDK.
Instalowanie i ocenianie rozszerzenia
Ocena, czy rozszerzenie spełnia Twoje potrzeby, za pomocą emulatora Extensions jest prosta.
Załóżmy, że interesuje Cię rozszerzenie Trigger Email
(firestore-send-email) extension,
ale ten proces obejmuje dowolne rozszerzenie. Gdy rozszerzenie Trigger Email jest uruchamiane z emulatorami lokalnymi,
automatycznie korzysta z emulatorów Cloud Firestore i
Cloud Functions.
Aby ocenić rozszerzenie lokalnie:
Dodaj rozszerzenie do lokalnego manifestu rozszerzeń. Manifest rozszerzeń to lista instancji rozszerzeń i ich konfiguracji.
firebase ext:install --local firebase/firestore-send-email
Uruchomienie powyższego polecenia spowoduje wyświetlenie prośby o skonfigurowanie najnowszej wersji rozszerzenia
firebase/firestore-send-emaili zapisanie konfiguracji w manifeście, ale nie wdroży konfiguracji w projekcie. Więcej informacji znajdziesz w artykule Zarządzanie konfiguracją rozszerzeń za pomocą manifestów.Uruchom Local Emulator Suite w zwykły sposób.
firebase emulators:start
Pakiet emulatorów lokalnych pobier101e teraz kod źródłowy tego rozszerzenia do katalogu ~/.cache/firebase/extensions za pomocą instancji rozszerzenia firestore-send-email wymienionej w
your manifest, the Local Emulator Suite. Po pobraniu źródeł
Local Emulator Suite uruchomi się i będziesz mieć możliwość
wywołania dowolnej funkcji wywoływanej w tle rozszerzenia oraz połączenia
aplikacji z Local Emulator Suite, aby przetestować ich integrację z aplikacją.
Możesz użyć Emulator Suite UI, aby dodać dane do kolekcji dokumentów e-maila i skonfigurować inne zasoby backendu wymagane przez rozszerzenie Trigger Email.
W przypadku środowisk testowych bez interakcji, takich jak procesy ciągłej integracji, możesz też napisać skrypt testowy do oceny rozszerzenia który między innymi wypełnia niezbędne dane Cloud Firestore i wywołuje funkcje. Następnie wywołasz Local Emulator Suite , aby wykonać skrypt testowy:
firebase emulators:exec my-test.shCzym różni się testowanie za pomocą emulatora Extensions od testowania w środowisku produkcyjnym?
Emulator Extensions umożliwia testowanie rozszerzeń w sposób, który jest bardzo podobny do środowiska produkcyjnego. Istnieją jednak pewne różnice w zachowaniu w środowisku produkcyjnym.
Cloud IAM
Pakiet emulatorów Firebase nie próbuje replikować ani respektować żadnych zachowań związanych z IAM. Emulatory przestrzegają podanych reguł zabezpieczeń Firebase, ale w sytuacjach, w których normalnie używany byłby IAM, na przykład do ustawienia konta usługi wywołującej Cloud Functions, a tym samym uprawnień, emulator nie jest konfigurowalny i będzie używać globalnie dostępnego konta na komputerze dewelopera, podobnie jak w przypadku bezpośredniego uruchamiania skryptu lokalnego.
Ograniczenie typu wyzwalania
Obecnie Firebase Local Emulator Suite obsługuje tylko funkcje wywoływane przez żądania HTTP , reguły dołączenia do grupy odbiorców Eventarc dla rozszerzeń oraz funkcje wywoływane przez zdarzenia w tle w Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication i Pub/Sub. Aby ocenić rozszerzenia które używają innych typów funkcji wywoływanych, musisz zainstalować rozszerzenie w testowym projekcie Firebase.
Co dalej?
- Zestaw wyselekcjonowanych filmów i szczegółowych instrukcji z przykładami znajdziesz na playliście szkoleń na temat emulatorów Firebase.