Zanim użyjesz emulatora Extensions w swojej aplikacji, zapoznaj się z całym procesem pracy z Firebase Local Emulator Suite oraz zainstaluj i skonfigurujLocal Emulator Suite i sprawdź jego polecenia wiersza poleceń.
W tym przewodniku zakładamy 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 nimi zarządzać w bezpiecznym środowisku lokalnym oraz lepiej poznać ich możliwości, jednocześnie minimalizując koszty rozliczeń. Emulator uruchamia funkcje rozszerzenia lokalnie, w tym funkcje wywoływane przez zdarzenia w tle za pomocą emulatorów 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.
Wybieranie projektu Firebase
Firebase Local Emulator Suite emuluje usługi w pojedynczym projekcie Firebase.
Aby wybrać projekt, który ma być używany, przed uruchomieniem emulatorów uruchom w CLI polecenie firebase use
w katalogu roboczym. Możesz też przekazać parametr --project
do każdego polecenia emulatora.
Local Emulator Suite obsługuje emulację prawdziwych projektów Firebase oraz projektów demonstracyjnych.
Typ projektu | Funkcje | Używanie z emulatorami |
---|---|---|
Real |
Prawdziwy projekt Firebase to taki, który został utworzony i skonfigurowany (najprawdopodobniej w konsoli Firebase). Prawdziwe projekty mają aktywne zasoby, takie jak instancje bazy danych, kontenery magazynu, funkcje lub inne zasoby skonfigurowane w danym projekcie Firebase. |
Podczas pracy z prawdziwymi projektami Firebase możesz uruchamiać emulatory dla wszystkich lub niektórych obsługiwanych usług. W przypadku usług, których nie emulujesz, Twoje aplikacje i kod będą wchodzić w interakcję z aktywnymi zasobami (instancjami baz danych, zasobnikami, funkcjami itp.). |
Prezentacja |
Demonstracyjny projekt Firebase nie ma rzeczywistej konfiguracji Firebase i żadnych zasobów w produkcji. Do tych projektów zwykle uzyskuje się dostęp za pomocą ćwiczeń z programowania lub innych samouczków. Identyfikatory projektów demonstracyjnych mają prefiks |
Podczas pracy z demonstracyjnymi projektami Firebase aplikacje i kod będą wchodzić w interakcje z emulatorami tylko. Jeśli aplikacja próbuje wchodzić w interakcję z zasobem, dla którego nie działa emulowany system, kod nie zadziała. |
W miarę możliwości zalecamy korzystanie z projektów demonstracyjnych. 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 będzie możliwości zmiany danych, ich użycia ani rozliczenia.
- lepsza obsługa trybu offline, ponieważ do pobrania konfiguracji pakietu SDK nie jest potrzebne połączenie z internetem;
Instalowanie i ocenianie rozszerzenia
Sprawdzenie, czy rozszerzenie spełnia Twoje potrzeby, jest proste dzięki emulatorowi Extensions.
Załóżmy, że interesuje Cię rozszerzenie (firestore-send-email
) E-mail z wyzwalaczem, ale poniższy proces dotyczy dowolnego rozszerzenia. Podczas uruchamiania z lokalnymi emulatorami narzędzie Trigger Email automatycznie korzysta z emulatorów Cloud Firestore i Cloud Functions.
Aby ocenić rozszerzenie lokalnie:
Dodaj rozszerzenie do pliku manifestu rozszerzeń lokalnych. Manifest rozszerzeń to lista instancji rozszerzeń i ich konfiguracji.
firebase ext:install --local firebase/firestore-send-email
Po wykonaniu tego polecenia pojawi się prośba o skonfigurowanie najnowszej wersji rozszerzenia
firebase/firestore-send-email
i zapisanie konfiguracji w pliku manifestu. Nie zostanie jednak wdrożona konfiguracja w Twoim projekcie. Więcej informacji znajdziesz w artykule Zarządzanie konfiguracją rozszerzeń za pomocą plików manifestu.Uruchom Local Emulator Suite jak zwykle.
firebase emulators:start
Teraz, korzystając z instancji rozszerzenia firestore-send-email
wymienionej w pliku manifestu, Local Emulator Suite pobierze kod źródłowy tego rozszerzenia do ~/.cache/firebase/extensions
. Po pobraniu źródeł Local Emulator Suite zostanie uruchomiony i będziesz mieć możliwość wywołania dowolnej funkcji rozszerzenia wywoływanej w tle oraz połączenia aplikacji z Local Emulator Suite, aby przetestować integrację z Twoją aplikacją.
Za pomocą Emulator Suite UI możesz dodawać dane do kolekcji dokumentów e-maila oraz konfigurować inne zasoby backendu zgodnie z wymaganiami rozszerzenia Trigger Email.
W przypadku środowisk testowania nieinterakcyjnego, takich jak ciągłe przepływy pracy integracji, możesz napisać skrypt testowy do oceny rozszerzenia, który między innymi wypełnia niezbędne dane Cloud Firestore i uruchamia funkcje. Następnie wywołaj Local Emulator Suite, aby wykonać skrypt testowy:
firebase emulators:exec my-test.sh
.
Różnice między testowaniem w emulatorze Extensions a testowaniem w wersji produkcyjnej
Emulator Extensions umożliwia testowanie rozszerzeń w sposób zbliżony do środowiska produkcyjnego. Występują jednak pewne różnice w działaniu w porównaniu z wersją produkcyjną.
Cloud IAM
Pakiet emulatorów Firebase nie próbuje odwzorowywać ani uwzględniać podczas działania żadnych zachowań związanych z IAM. Emulatory przestrzegają reguł zabezpieczeń Firebase, ale w sytuacjach, w których zwykle używane jest IAM, np. do konfigurowania wywołań konta usługi Cloud Functions i odpowiednich uprawnień, emulator nie jest konfigurowalny i będzie używać konta dostępnego globalnie na Twoim 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 żądanie HTTP, niestandardowe aktywatory zdarzeń Eventarc dla rozszerzeń oraz funkcje wywoływane przez zdarzenia w tle w przypadku 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?
- Aby uzyskać dostęp do wyselekcjonowanych filmów i szczegółowych przykładów, przejdź do playlisty szkoleń na temat emulatorów Firebase.