Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Użyj emulatora rozszerzeń do oceny rozszerzeń

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Przed użyciem emulatora rozszerzeń w swojej aplikacji upewnij się, że rozumiesz ogólny przepływ pracy pakietu emulatorów lokalnych Firebase , a także instalujesz i konfigurujesz pakiet emulatorów lokalnych oraz przeglądasz jego polecenia interfejsu wiersza polecenia .

W tym przewodniku założono również, że znasz rozszerzenia Firebase i wiesz, jak z nich korzystać w aplikacjach Firebase .

Co mogę zrobić z emulatorem rozszerzeń?

Dzięki emulatorowi rozszerzeń możesz instalować rozszerzenia i zarządzać nimi w bezpiecznym środowisku lokalnym oraz lepiej zrozumieć ich możliwości, jednocześnie minimalizując koszty rozliczeń. Emulator uruchamia lokalnie funkcje Twojego rozszerzenia, w tym funkcje wyzwalane zdarzeniami w tle przy użyciu emulatorów Cloud Firestore, Bazy danych czasu rzeczywistego, Cloud Storage, uwierzytelniania i Pub/Sub oraz funkcji wyzwalanych przez Eventarc zaimplementowanych w Cloud Functions v2.

Wybierz projekt Firebase

Pakiet emulatorów lokalnych Firebase emuluje produkty dla jednego projektu Firebase.

Aby wybrać projekt do użycia, przed uruchomieniem emulatorów, w CLI uruchom firebase use w swoim katalogu roboczym. Lub możesz przekazać flagę --project do każdego polecenia emulatora.

Local Emulator Suite obsługuje emulację rzeczywistych projektów Firebase i projektów demonstracyjnych .

Typ projektu Cechy Używaj z emulatorami
Prawdziwy

Prawdziwy projekt Firebase to taki, który utworzyłeś i skonfigurowałeś (najprawdopodobniej za pomocą konsoli Firebase).

Prawdziwe projekty mają aktywne zasoby, takie jak instancje bazy danych, zasobniki pamięci, funkcje lub inne zasoby skonfigurowane dla tego projektu Firebase.

Pracując z prawdziwymi projektami Firebase, możesz uruchomić emulatory dla dowolnego lub wszystkich obsługiwanych produktów.

W przypadku jakichkolwiek produktów, których nie emulujesz, Twoje aplikacje i kod będą wchodzić w interakcję z aktywnym zasobem (instancją bazy danych, zasobnikiem pamięci, funkcją itp.).

Próbny

Projekt demonstracyjny Firebase nie ma rzeczywistej konfiguracji Firebase ani aktywnych zasobów. Dostęp do tych projektów można zwykle uzyskać za pośrednictwem ćwiczeń z programowania lub innych samouczków.

Identyfikatory projektów dla projektów demonstracyjnych mają demo- demo.

Podczas pracy z projektami demonstracyjnymi Firebase Twoje aplikacje i kod współdziałają tylko z emulatorami . Jeśli aplikacja spróbuje wejść w interakcję z zasobem, dla którego emulator nie jest uruchomiony, ten kod zakończy się niepowodzeniem.

W miarę możliwości zalecamy korzystanie z projektów demonstracyjnych. Korzyści obejmują:

  • Ł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, wykorzystanie i rozliczenia
  • Lepsza obsługa offline, ponieważ nie ma potrzeby dostępu do Internetu, aby pobrać konfigurację SDK.

Zainstaluj i oceń rozszerzenie

Używanie emulatora rozszerzeń do oceny, czy rozszerzenie spełnia Twoje potrzeby, jest proste.

Załóżmy, że interesuje Cię rozszerzenie Trigger Email ( firestore-send-email ), chociaż poniższy przepływ pracy obejmuje każde rozszerzenie . Po uruchomieniu z emulatorami lokalnymi Trigger Email automatycznie użyje emulatorów Cloud Firestore i Cloud Functions.

Aby ocenić rozszerzenie lokalnie:

  1. Dodaj rozszerzenie do manifestu rozszerzeń lokalnych. Manifest rozszerzeń to lista wystąpień rozszerzeń i ich konfiguracji.

    firebase ext:install --local firebase/firestore-send-email

    Uruchomienie powyższego polecenia spowoduje wyświetlenie monitu o skonfigurowanie najnowszej wersji rozszerzenia firebase/firestore-send-email i zapisanie konfiguracji w manifeście, ale konfiguracja nie zostanie wdrożona w projekcie. Aby uzyskać więcej informacji na ten temat, zobacz Zarządzanie konfiguracją rozszerzeń za pomocą manifestów

  2. Uruchom lokalny pakiet emulatorów tak, jak zwykle.

    firebase emulators:start

Teraz, używając wystąpienia rozszerzenia firestore-send-email wymienionego w Twoim manifeście, lokalny pakiet emulatorów pobierze kod źródłowy tego rozszerzenia do ~/.cache/firebase/extensions . Po pobraniu źródeł lokalny pakiet emulatorów uruchomi się i będziesz mógł wyzwolić dowolne funkcje wyzwalane w tle rozszerzenia i połączyć swoją aplikację z pakietem lokalnych emulatorów, aby przetestować ich integrację z Twoją aplikacją.

Możesz użyć interfejsu użytkownika pakietu Emulator Suite, aby dodać dane do kolekcji dokumentów e-mail i skonfigurować inne zasoby zaplecza, zgodnie z wymaganiami rozszerzenia Trigger Email.

Alternatywnie, w nieinteraktywnych środowiskach testowych, takich jak przepływy pracy ciągłej 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łałbyś Local Emulator Suite w celu wykonania skryptu testowego:

firebase emulators:exec my-test.sh

Czym różni się testowanie z emulatorem rozszerzeń od produkcji

Emulator rozszerzeń umożliwia testowanie rozszerzeń w sposób zbliżony do środowiska produkcyjnego. Istnieją jednak pewne różnice w zachowaniu podczas produkcji.

Cloud IAM

Pakiet emulatorów Firebase nie próbuje replikować ani respektować żadnego zachowania związanego z uprawnieniami podczas uruchamiania. Emulatory są zgodne z dostarczonymi regułami bezpieczeństwa Firebase, ale w sytuacjach, w których uprawnienia byłyby normalnie używane, na przykład do ustawiania konta usługi wywoływania Cloud Functions, a tym samym uprawnień, emulator nie jest konfigurowalny i będzie korzystał z globalnie dostępnego konta na komputerze dewelopera, podobne do bezpośredniego uruchamiania lokalnego skryptu.

Ograniczenie typu wyzwalania

Obecnie Firebase Local Emulator Suite obsługuje tylko funkcje wyzwalane żądaniami HTTP, niestandardowe wyzwalacze zdarzeń Eventarc dla rozszerzeń oraz funkcje wyzwalane zdarzeniami w tle dla Cloud Firestore, Bazy danych czasu rzeczywistego, Cloud Storage, uwierzytelniania i Pub/Sub. Aby ocenić rozszerzenia korzystające z innych typów wyzwalanych funkcji, musisz zainstalować rozszerzenie w testowym projekcie Firebase.

Co następne?

  • Aby zapoznać się z wyselekcjonowanym zestawem filmów i szczegółowymi przykładami instrukcji, skorzystaj z playlisty szkoleniowej na temat emulatorów Firebase .