Zanim zaczniesz tworzyć prototypy i testować aplikację internetową za pomocą Firebase Hostingemulatora, upewnij się, że rozumiesz ogólny Firebase Local Emulator Suiteprzepływ pracy oraz że instalujesz i konfigurujesz Local Emulator Suite i zapoznajesz się z jego poleceniami interfejsu CLI.
Znasz też funkcje i proces wdrażania Firebase Hosting. Zacznij od wprowadzenia do Firebase Hosting.
Do czego służy Firebase Hosting emulator?
Firebase Hosting emulator zapewnia lokalną emulację usług Hosting o wysokiej wierności, udostępniając większość funkcji dostępnych w produkcyjnych Hosting. Hostingemulator umożliwia:
- Tworzenie prototypów statycznych witryn i aplikacji internetowych bez ponoszenia opłat za przechowywanie i dostęp
- Prototypowanie, testowanie i debugowanie funkcji HTTPS przed wdrożeniem w witrynie Hosting
- Testuj witryny i aplikacje internetowe w konteneryzowanych przepływach pracy ciągłej integracji.
Wybieranie projektu Firebase
Firebase Local Emulator Suite emuluje usługi dla jednego projektu Firebase.
Aby wybrać projekt, którego chcesz używać, przed uruchomieniem emulatorów wpisz w CLI polecenie
firebase use
w katalogu roboczym. Możesz też przekazać flagę --project
do każdego polecenia emulatora.
Local Emulator Suite obsługuje emulację prawdziwych projektów Firebase i projektów demonstracyjnych.
Typ projektu | Funkcje | Korzystanie z emulatorami |
---|---|---|
Real |
Prawdziwy projekt Firebase to projekt, który został utworzony i skonfigurowany (najprawdopodobniej w Firebasekonsoli). Prawdziwe projekty mają aktywne zasoby, takie jak instancje baz danych, zasobniki pamięci, funkcje lub inne zasoby skonfigurowane w tym projekcie Firebase. |
Podczas pracy z prawdziwymi projektami Firebase możesz uruchamiać emulatory wszystkich obsługiwanych usług. W przypadku wszystkich usług, których nie emulujesz, Twoje aplikacje i kod będą wchodzić w interakcje z zasobem na żywo (instancją bazy danych, zasobnikiem pamięci, funkcją itp.). |
Prezentacja |
Projekt demonstracyjny Firebase nie ma prawdziwej konfiguracji Firebase ani aktywnych zasobów. Dostęp do tych projektów uzyskuje się zwykle za pomocą ćwiczeń z programowania lub innych samouczków. Identyfikatory projektów demonstracyjnych mają prefiks |
Podczas pracy z demonstracyjnymi projektami Firebase aplikacje i kod wchodzą w interakcje tylko z emulatorami. Jeśli aplikacja spróbuje wejść w interakcję z zasobem, dla którego nie działa emulator, kod nie zadziała. |
Zalecamy korzystanie w miarę możliwości 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 tworzenia projektu Firebase.
- Większe bezpieczeństwo, ponieważ jeśli Twój kod przypadkowo wywoła zasoby nieemulowane (produkcyjne), nie ma możliwości zmiany danych, wykorzystania zasobów ani naliczenia opłat.
- Lepsza obsługa offline, ponieważ nie musisz uzyskiwać dostępu do internetu, aby pobrać konfigurację pakietu SDK.
Podstawowy przepływ pracy związany z prototypowaniem
Jeśli szybko wprowadzasz zmiany lub chcesz, aby aplikacja wchodziła w interakcje z zasobami emulowanego projektu backendu, możesz przetestować Hostingtreści i konfiguracjęHosting lokalnie. Podczas testowania lokalnego Firebase udostępnia aplikację internetową pod lokalnie hostowanym adresem URL.
(Opcjonalnie) Domyślnie aplikacja hostowana lokalnie będzie wchodzić w interakcje z prawdziwymi, a nie emulowanymi zasobami projektu (funkcjami, bazą danych, regułami itp.). Zamiast tego możesz opcjonalnie połączyć aplikację, aby korzystać z dowolnych zasobów emulowanego projektu, które zostały skonfigurowane. Więcej informacji: Realtime Database | Cloud Firestore | Cloud Functions
W głównym katalogu projektu lokalnego uruchom to polecenie:
firebase emulators:start
Otwórz aplikację internetową pod lokalnym adresem URL zwróconym przez interfejs CLI (zwykle
http://localhost:5000
).Aby zaktualizować lokalny adres URL o wprowadzone zmiany, odśwież przeglądarkę.
Testowanie na innych urządzeniach lokalnych
Domyślnie emulatory odpowiadają tylko na żądania z localhost
. Oznacza to, że będziesz mieć dostęp do hostowanych treści z przeglądarki internetowej na komputerze, ale nie z innych urządzeń w sieci. Jeśli chcesz przeprowadzić testy na innych urządzeniach lokalnych, skonfiguruj firebase.json
w ten sposób:
"emulators": {
// ...
"hosting": {
"port": 5000,
"host": "0.0.0.0"
}
}
Generowanie tokenów uwierzytelniających na potrzeby przepływów pracy ciągłej integracji
Jeśli Twoje przepływy pracy ciągłej integracji zależą od Hostingu Firebase, musisz zalogować się za pomocą tokena, aby uruchomić firebase emulators:exec
. Pozostałe emulatory nie wymagają logowania.
Aby wygenerować token, uruchom firebase login:ci
w środowisku lokalnym. Nie należy tego robić w systemie CI. Postępuj zgodnie z instrukcjami, aby się uwierzytelnić.
Ten krok wystarczy wykonać tylko raz na projekt, ponieważ token będzie ważny we wszystkich kompilacjach. Token należy traktować jak hasło. Upewnij się, że jest on przechowywany w tajemnicy.
Jeśli środowisko CI umożliwia określanie zmiennych środowiskowych, których można używać w skryptach kompilacji, po prostu utwórz zmienną środowiskową o nazwie FIREBASE_TOKEN
, a jako wartość podaj ciąg tokena dostępu. Interfejs Firebase CLI automatycznie pobierze zmienną środowiskową FIREBASE_TOKEN
, a emulatory uruchomią się prawidłowo.
W ostateczności możesz po prostu dodać token do skryptu kompilacji, ale upewnij się, że nie mają do niego dostępu osoby, którym nie ufasz. W przypadku tego podejścia zakodowanego na stałe możesz dodać --token "YOUR_TOKEN_STRING_HERE"
do polecenia firebase emulators:exec
.
Co dalej?
- Wykonaj krótkie wprowadzenie do korzystania z emulatora Hosting, postępując zgodnie z instrukcjami w samouczku Firebase dotyczącym internetu.
- Dowiedz się, jak tworzyć prototypy funkcji HTTPS za pomocą Hostingemulatora zgodnie z opisem w przewodnikach po hostingu funkcji.
- Zestaw wyselekcjonowanych filmów i szczegółowych instrukcji z przykładami znajdziesz na playliście szkoleń na temat emulatorów Firebase.