Ocena rozszerzeń za pomocą emulatora rozszerzeń

Zanim użyjesz w aplikacji emulatora Extensions, upewnij się, że poznasz ogólny przepływ pracy w Firebase Local Emulator Suite, oraz musisz zainstalować i skonfigurować Local Emulator Suite i zapoznaj się z poleceniami interfejsu wiersza poleceń.

W tym przewodniku zakładamy też, że znasz Firebase Extensions i używanie ich w aplikacjach Firebase.

Co mogę zrobić za pomocą emulatora Extensions?

Emulator Extensions pozwala instalować rozszerzenia i zarządzać nimi w bezpiecznym środowisku lokalnym i lepszym poznaniu ich możliwości przy jednoczesnej koszty rozliczeń. Emulator uruchamia lokalnie funkcje rozszerzenia, w tym funkcji wyzwalanych przez zdarzenia w tle za pomocą emulatorów, Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication i Pub/Sub i funkcje wyzwalane przez Eventarc zaimplementowane w Cloud Functions wersja 2.

Wybierz projekt Firebase

Funkcja Firebase Local Emulator Suite emuluje produkty z jednego projektu Firebase.

Aby wybrać projekt do użycia, przed uruchomieniem emulatorów uruchom interfejs wiersza poleceń firebase use w katalogu roboczym. Możesz też przejść flagę --project poszczególnych emulatorów .

Local Emulator Suite obsługuje emulację prawdziwych projektów Firebase oraz projektów demograficznych.

Typ projektu Funkcje Używanie z emulatorami
Prawdziwe

Prawdziwy projekt Firebase to projekt utworzony i skonfigurowany przez Ciebie (najprawdopodobniej za pomocą konsoli Firebase).

Prawdziwe projekty mają aktywne zasoby, takie jak instancje baz danych, miejsce na dane zasobników, funkcji lub innych zasobów utworzonych dla danej usługi Firebase w projektach AI.

Podczas pracy z prawdziwymi projektami Firebase możesz używać emulatorów dla lub wszystkich obsługiwanych usług.

W przypadku usług, których nie emulujesz, aplikacje i kod będą interakcja z zasobem aktywnym (instancją bazy danych, pamięcią masową) zasobnik, funkcja itp.).

Wersja demonstracyjna

Projekt demonstracyjny Firebase nie ma rzeczywistej konfiguracji Firebase oraz brak aktywnych zasobów. Dostęp do tych projektów uzyskuje się zazwyczaj w ramach ćwiczeń z programowania lub innych samouczków.

Identyfikatory projektów demonstracyjnych mają prefiks demo-.

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

Zalecamy, aby w miarę możliwości korzystać z projektów demonstracyjnych. W ten sposób możesz zapewnić im dostęp do tych korzyści:

  • Łatwiejsza konfiguracja, ponieważ emulatory można uruchamiać bez konieczności tworzenia Projekt Firebase
  • Silniejsze bezpieczeństwo, ponieważ jeśli Twój kod przypadkowo wywoła nieemulowany (produkcyjnych), nie jest prawdopodobne, że nastąpi zmiana danych, jego użycia i rozliczeń
  • lepsza obsługa offline, ponieważ nie trzeba łączyć się z internetem, pobierz konfigurację pakietu SDK.
.

Instalowanie i ocenianie rozszerzenia

Oceń, czy rozszerzenie jest zgodne z zasadami za pomocą emulatora Extensions jest prosta.

Załóżmy, że interesuje Cię e-mail wywołujący (firestore-send-email) rozszerzenie, ale ten proces dotyczy każdego rozszerzenia. Przy uruchamianiu za pomocą lokalnych emulatorów E-mail powodujący regułę będzie automatycznie korzystać z tych atrybutów: Cloud Firestore i Emulatory funkcji Cloud Functions.

Aby ocenić rozszerzenie lokalnie:

  1. Dodaj rozszerzenie do pliku manifestu rozszerzeń lokalnych. Plik manifestu rozszerzeń to listę instancji rozszerzeń i ich konfiguracji.

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

    Uruchomienie powyższego polecenia spowoduje skonfigurowanie najnowszej wersji firebase/firestore-send-email rozszerzenie i zapisz konfigurację w pliku manifestu, ale nie wdroży on konfiguracji w projekcie. Dla: Więcej informacji znajdziesz w artykule Zarządzanie konfiguracją rozszerzeń za pomocą plików manifestu.

  2. Uruchom Local Emulator Suite w zwykły sposób.

    firebase emulators:start

Za pomocą instancji rozszerzenia firestore-send-email wymienionej w tabeli w pliku manifestu, Local Emulator Suite pobierze kod źródłowy to rozszerzenie do ~/.cache/firebase/extensions. Kiedyś uzależniające pobrane, uruchomi się Local Emulator Suite i będzie można może uruchamiać dowolną z funkcji rozszerzenia w tle oraz łączyć do Local Emulator Suite, aby przetestować ich integrację z aplikacją.

Za pomocą usługi Emulator Suite UI możesz dodać dane do kolekcji dokumentów e-mail i skonfigurować inne zasoby backendu, zgodnie z wymaganiami rozszerzenia E-mail aktywującego.

Alternatywnie w nieinteraktywnych środowiskach testowych, takich jak ciągłe w przepływach pracy integracji, można napisać skrypt testowy oceny rozszerzenia która m.in. uzupełnia niezbędne dane Cloud Firestore oraz uruchamia funkcje. Następnie wywołasz funkcję Local Emulator Suite aby wykonać skrypt testowy:

firebase emulators:exec my-test.sh

Czym testowanie za pomocą emulatora Extensions różni się od wersji produkcyjnej

Emulator Extensions umożliwia dokładne testowanie rozszerzeń pasuje do procesu produkcji. Występują jednak pewne różnice w środowisku produkcyjnym.

Cloud IAM

Pakiet emulatorów Firebase nie próbuje replikować ani nie przestrzegać Zachowanie związane z uprawnieniami przy uruchamianiu. Emulatory są zgodne z zasadami zabezpieczeń Firebase Reguły są podane, ale w sytuacjach, gdy są one zwykle używane, na przykład do ustawienia wywoływania konta usługi przez Cloud Functions, a tym samym do ustawiania uprawnień, Nie można skonfigurować emulatora. Używa on dostępnego globalnie konta na komputerze programisty, podobnie jak w przypadku bezpośredniego uruchomienia skryptu.

Ograniczenie typu wyzwalacza

Obecnie Firebase Local Emulator Suite obsługuje tylko żądania aktywowane przez żądanie HTTP funkcje, aktywatory zdarzeń niestandardowych Eventarc w przypadku rozszerzeń oraz tło funkcje wywoływane przez zdarzenia dla interfejsów Cloud Firestore, Realtime Database, Cloud Storage for Firebase, Authentication i Pub/Sub. Ocenianie rozszerzeń używające innych typów wyzwalanych funkcji, zainstalować rozszerzenie. w testowym projekcie Firebase.

Co dalej?