Zanim zaczniesz tworzyć prototypy i testować aplikację internetową za pomocą emulatora Firebase Hosting, zapoznaj się z całym procesem Firebase Local Emulator Suite oraz zainstaluj i skonfiguruj Local Emulator Suite i zapoznaj się z poleceniami CLI.
Znasz też funkcje i proces implementacji w Firebase Hosting. Zacznij od wprowadzenia do Firebase Hosting.
Co mogę zrobić za pomocą emulatora Firebase Hosting?
Emulator Firebase Hosting umożliwia wysoką lokalną emulację usług Hosting i oferuje większość funkcji dostępnych w wersji produkcyjnej Hosting. Emulator Hosting pozwala:
- tworzyć prototypy witryn statycznych i aplikacji internetowych bez ponoszenia opłat za miejsce na dane i dostęp do nich;
- Utwórz prototyp, przetestuj i debuguj funkcje HTTPS przed wdrożeniem w witrynie Hostingu
- Testuj witryny i aplikacje internetowe w konteneryzowanych procesach ciągłej integracji.
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 i projektów prezentacyjnych.
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.). |
Wersja demonstracyjna |
Projekt demonstracyjny Firebase nie ma rzeczywistej konfiguracji Firebase ani aktywnych zasobów. Dostęp do tych projektów uzyskuje się zwykle w ramach ćwiczeń z programowania lub innych samouczków. Identyfikatory projektów demonstracyjnych mają prefiks |
Jeśli pracujesz w projektach demonstracyjnych Firebase, Twoje aplikacje i kod wchodzą w interakcję tylko z emulatorami. 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 ma możliwości zmiany danych, ich użycia ani rozliczenia.
- lepszą obsługę offline, ponieważ do pobrania konfiguracji pakietu SDK nie jest potrzebny dostęp do internetu;
Podstawowy przepływ pracy związany z prototypowaniem
Jeśli wprowadzasz szybkie iteracje lub chcesz, aby Twoja aplikacja współdziałała z zasymulowanymi zasobami projektu backendu, możesz przetestować zawartość i konfigurację Hosting lokalnie. Podczas testowania lokalnie Firebase udostępnia Twoją aplikację internetową pod adresem URL hostowanym lokalnie.
(Opcjonalnie) Domyślnie aplikacja hostowana lokalnie będzie wchodzić w interakcję z prawdziwymi, a nie emulowanymi zasobami projektu (funkcjami, bazą danych, regułami itp.). Możesz też połączyć aplikację z dowolnymi zasobami emulowanymi w ramach skonfigurowanego projektu. Więcej informacji: Realtime Database | Cloud Firestore | Cloud Functions
W katalogu głównym katalogu projektu lokalnego uruchom to polecenie:
firebase emulators:start
Otwórz aplikację internetową pod lokalnym adresem URL zwróconym przez interfejs wiersza poleceń (zwykle
http://localhost:5000
).Aby zaktualizować lokalny adres URL, odśwież przeglądarkę.
Testowanie na innych urządzeniach lokalnych
Domyślnie emulatory odpowiadają tylko na żądania wysyłane przez localhost
. Oznacza to, że możesz korzystać z treści hostowanych w przeglądarce na komputerze, ale nie na innych urządzeniach w sieci. Jeśli chcesz przeprowadzić test z innych urządzeń lokalnych, skonfiguruj firebase.json
w ten sposób:
"emulators": {
// ...
"hosting": {
"port": 5000,
"host": "0.0.0.0"
}
}
Generowanie tokenów uwierzytelniania na potrzeby procesów ciągłej integracji
Jeśli Twoje przepływy ciągłej integracji korzystają z 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ć z poziomu systemu CI. Postępuj zgodnie z instrukcjami, aby uwierzytelnić konto.
Wystarczy, że wykonasz ten krok tylko raz w przypadku każdego projektu, ponieważ token będzie ważny dla wszystkich wersji. Token należy traktować jak hasło. Musisz więc zachować go w tajemnicy.
Jeśli Twoje środowisko CI umożliwia określenie zmiennych środowiskowych, których można używać w skryptach kompilacji, utwórz zmienną środowiskową o nazwie FIREBASE_TOKEN
, a jej wartością niech będzie ciąg znaków tokenu dostępu. Pętla Firebase CLI automatycznie wczyta zmienną środowiskową FIREBASE_TOKEN
, a emulatory uruchomią się prawidłowo.
W ostatniej chwili możesz po prostu dodać token do skryptu kompilacji, ale pamiętaj, aby nieautoryzowane strony nie miały do niego dostępu. Aby to zrobić, możesz dodać --token "YOUR_TOKEN_STRING_HERE"
do polecenia firebase emulators:exec
.
Co dalej?
- Uruchom krótkie wprowadzenie za pomocą emulatora Hosting, wykonując instrukcje podane w internetowym kursie Firebase Firebase Codelab.
- Dowiedz się, jak prototypować funkcje HTTPS za pomocą emulatora Hosting zgodnie z opisem w Przewodnikach hostowania funkcji.
- Aby uzyskać dostęp do wyselekcjonowanych filmów i szczegółowych przykładów, skorzystaj z playlisty szkoleń na temat emulatorów Firebase.