Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Użyj emulatora rozszerzeń do oceny rozszerzeń

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

Zanim użyjesz emulatora rozszerzeń w swojej aplikacji, upewnij się, że rozumiesz ogólny przepływ pracy w pakiecie lokalnych emulatorów Firebase oraz że instalujesz i konfigurujesz pakiet lokalnych emulatorów i przeglądasz jego polecenia CLI .

W tym przewodniku założono również, że znasz rozszerzenia Firebase i wiesz, jak ich używać 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 rozliczeniowe. Emulator uruchamia funkcje Twojego rozszerzenia lokalnie, w tym funkcje wyzwalane zdarzeniami w tle za pomocą emulatorów Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication i Pub/Sub oraz funkcje wyzwalane Eventarc zaimplementowane w Cloud Functions v2.

Wybierz projekt Firebase

Firebase Local Emulator Suite emuluje produkty dla pojedynczego 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ę prawdziwych 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 baz danych, zasobniki pamięci, funkcje lub wszelkie inne zasoby skonfigurowane dla tego projektu Firebase.

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

W przypadku produktów, których nie emulujesz, Twoje aplikacje i kod będą wchodzić w interakcje z aktywnym zasobem (instancja bazy danych, zasobnik pamięci, funkcja itp.).

Próbny

Demonstracyjny projekt Firebase nie ma rzeczywistej konfiguracji Firebase ani aktywnych zasobów. Projekty te są zwykle dostępne za pośrednictwem laboratoriów kodów lub innych samouczków.

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

Podczas pracy z demonstracyjnymi projektami Firebase aplikacje i kod współdziałają tylko z emulatorami . Jeśli Twoja aplikacja spróbuje wejść w interakcję z zasobem, dla którego nie działa emulator, 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 rozliczenie
  • Lepsze wsparcie offline, ponieważ nie ma potrzeby dostępu do Internetu, aby pobrać konfigurację SDK.

Zainstaluj i oceń rozszerzenie

Korzystanie z emulatora rozszerzeń w celu 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 dowolne rozszerzenie . Po uruchomieniu z lokalnymi emulatorami 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 nie spowoduje to wdrożenia konfiguracji w projekcie. Aby uzyskać więcej informacji na ten temat, zobacz Zarządzanie konfiguracją rozszerzeń za pomocą manifestów

  2. Uruchom pakiet Local Emulator Suite w normalny sposób.

    firebase emulators:start

Teraz, korzystając z instancji rozszerzenia firestore-send-email wymienionej w Twoim manifeście, Local Emulator Suite pobierze kod źródłowy tego rozszerzenia do ~/.cache/firebase/extensions . Po pobraniu soures uruchomi się Local Emulator Suite i będziesz mógł uruchomić dowolną funkcję rozszerzenia uruchamianą w tle i połączyć swoją aplikację z Local Emulator Suite, aby przetestować ich integrację z Twoją aplikacją.

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

Alternatywnie, w przypadku nieinteraktywnych środowisk testowych, takich jak przepływy pracy ciągłej integracji, można napisać skrypt testowy do oceny rozszerzenia, które między innymi zapełnia niezbędne dane Cloud Firestore i wyzwala funkcje. Następnie wywołałbyś pakiet Local Emulator Suite, aby wykonać skrypt testowy:

firebase emulators:exec my-test.sh

Czym testowanie za pomocą emulatora rozszerzeń różni się od produkcji

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

Uprawnienia w chmurze

Pakiet Firebase Emulator Suite nie próbuje replikować ani respektować żadnych zachowań związanych z IAM podczas uruchamiania. Emulatory są zgodne z podanymi Regułami bezpieczeństwa Firebase, ale w sytuacjach, w których IAM byłyby normalnie używane, na przykład do ustawiania konta usługi wywołującego Cloud Functions, a tym samym uprawnień, emulatora nie można konfigurować i użyje globalnie dostępnego konta na komputerze programisty, podobne do bezpośredniego uruchamiania lokalnego skryptu.

Ograniczenie rodzaju wyzwalania

Obecnie pakiet Firebase Local Emulator Suite obsługuje tylko funkcje wyzwalane żądaniem HTTP, niestandardowe wyzwalacze zdarzeń Eventarc dla rozszerzeń oraz funkcje wyzwalane zdarzeniami w tle dla Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication i Pub/Sub. Aby ocenić rozszerzenia korzystające z innych typów wyzwalanych funkcji, musisz zainstalować swoje rozszerzenie w testowym projekcie Firebase.

Co następne?