W jednym projekcie Firebase możesz skonfigurować co najmniej 1 witrynę Firebase Hosting. Ponieważ wszystkie witryny znajdują się w tym samym projekcie w Firebase, mogą one korzystać z innych zasobów Firebase w tym projekcie.
- Każda witryna ma własną konfigurację hostingu.
- Każda witryna zawiera własny zbiór treści.
- Każda witryna może mieć co najmniej 1 powiązaną domenę.
Skonfigurowanie wielu witryn Hosting w tym samym projekcie w Firebase ułatwia udostępnianie zasobów Firebase między powiązanymi witrynami i aplikacjami. Jeśli na przykład skonfigurujesz bloga, panel administracyjny i aplikację publiczną jako osobne witryny w tym samym projekcie w Firebase, wszystkie te witryny mogą korzystać z tej samej Firebase Authentication bazy danych użytkowników, a jednocześnie mieć własne unikalne domeny lub treści.
Krok 1. Zaktualizuj wersję interfejsu wiersza poleceń Firebase
Aby uzyskać dostęp do najnowszych funkcji Firebase Hosting, zaktualizuj interfejs wiersza poleceń Firebase do najnowszej wersji.
Krok 2. Dodaj dodatkowe witryny
Dodaj dodatkowe witryny do projektu w Firebase, korzystając z jednej z tych metod:
Użyj przepływu pracy na stronie Hosting i usługi bezserwerowe > Hosting w konsoli Firebase.
Użyj polecenia interfejsu wiersza poleceń Firebase:
firebase hosting:sites:create SITE_IDUżyj interfejsu Hosting API REST:
projects.sites.create
W przypadku każdej z tych metod określisz SITE_ID, który jest używany do tworzenia domyślnych subdomen udostępnianych przez Firebase dla witryny:
SITE_ID.web.appSITE_ID.firebaseapp.com
Ponieważ SITE_ID jest używany w tych adresach URL, identyfikator witryny musi spełniać te wymagania:
- Musi być prawidłową etykietą nazwy hosta, co oznacza, że nie może zawierać znaków
.,_itp. - Musi mieć maksymalnie 30 znaków.
- Musi być unikalny w skali globalnej w Firebase.
Do każdej witryny możesz też opcjonalnie dodać własne domeny, aby udostępniać tę samą treść i konfigurację pod wieloma adresami URL.
Usuwanie obszaru dodatkowego
Usuń niechciane witryny z projektu w Firebase, korzystając z jednej z tych metod:
Użyj przepływu pracy na stronie Hosting i usługi bezserwerowe > Hosting w konsoli Firebase.
Użyj polecenia interfejsu wiersza poleceń Firebase:
firebase hosting:sites:delete SITE_IDUżyj interfejsu API RESTHosting:
projects.sites.delete
Pamiętaj, że nie możesz usunąć domyślnej witryny, która ma ten sam SITE_ID co identyfikator projektu w Firebase.
Krok 3. Skonfiguruj cele wdrożenia dla swoich witryn
Gdy masz wiele witryn i uruchamiasz polecenia wdrożenia interfejsu wiersza poleceń Firebase, interfejs wiersza poleceń
musi mieć możliwość określenia, które ustawienia mają zostać wdrożone w każdej witrynie. Dzięki celom wdrożenia możesz jednoznacznie zidentyfikować
konkretną witrynę za pomocą TARGET_NAME w pliku konfiguracji
firebase.json
oraz w poleceniach interfejsu wiersza poleceń Firebase do
testowania lub wdrażania w witrynach.
Aby utworzyć cel wdrożenia i zastosować TARGET_NAME do witryny Hosting, uruchom
to polecenie interfejsu wiersza poleceń w katalogu głównym projektu:
firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER
Parametry:
TARGET_NAME – unikalna nazwa (zdefiniowana przez Ciebie) witryny Hosting , w której wdrażasz.
RESOURCE_IDENTIFIER –
SITE_IDwitryny Hosting widoczny w projekcie Firebase
Jeśli na przykład utworzono w projekcie Firebase 2 witryny (myapp-blog i myapp-app), możesz zastosować do każdej z nich unikalną TARGET_NAME (blog i app, odpowiednio), uruchamiając te polecenia:
firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app
Ustawienia celów wdrożenia są przechowywane w pliku .firebaserc w katalogu projektu, więc cele wdrożenia musisz skonfigurować tylko raz na projekt.
Krok 4. Zdefiniuj konfigurację hostingu dla każdej witryny
Podczas definiowania konfiguracji hostingu witryny w pliku firebase.json użyj zastosowanej TARGET_NAME witryny.
Jeśli plik
firebase.jsondefiniuje konfigurację wielu witryn, użyj formatu tablicy:{ "hosting": [ { "target": "blog", // "blog" is the applied TARGET_NAME for the Hosting site "myapp-blog" "public": "blog/dist", // contents of this folder are deployed to the site "myapp-blog" // ... }, { "target": "app", // "app" is the applied TARGET_NAME for the Hosting site "myapp-app" "public": "app/dist", // contents of this folder are deployed to the site "myapp-app" // ... "rewrites": [...] // You can define specific Hosting configurations for each site } ] }Jeśli plik
firebase.jsondefiniuje konfigurację tylko 1 witryny, nie musisz używać formatu tablicy:{ "hosting": { "target": "blog", "public": "dist", // ... "rewrites": [...] } }
Krok 5. Testuj lokalnie, wyświetlaj podgląd zmian i wdrażaj w witrynach
Uruchom dowolne z tych poleceń w katalogu głównym projektu lokalnego.
| Polecenie | Opis |
|---|---|
firebase emulators:start --only hosting |
Emuluje treść i konfigurację Hosting domyślnej Hosting witryny pod adresem URL hostowanym lokalnie |
firebase emulators:start --only hosting:TARGET_NAME |
Emuluje treść i konfigurację Hosting określonej witryny Hosting pod adresem URL hostowanym lokalnie. |
firebase hosting:channel:deploy \ |
Wdraża treść i konfigurację Hosting Hosting witryny pod adresem URL podglądu. |
firebase hosting:channel:deploy \ |
Wdraża treść Hosting i konfigurację określonej witryny Hosting pod adresem URL podglądu. |
firebase deploy --only hosting |
Wdraża treść i konfigurację Hosting w kanale na żywo
wszystkich witryn Hosting skonfigurowanych w
firebase.json.
|
firebase deploy --only hosting:TARGET_NAME |
Wdraża treść i konfigurację Hosting w kanale na żywo określonej witryny Hosting. |
| Polecenie | Opis |
|---|---|
(niezalecane; zamiast tego użyj polecenia emulators:start )firebase serve --only hosting
|
Wyświetla treść i konfigurację hostingu Hosting witryny domyślnej Hosting pod adresem URL hostowanym lokalnie. |
(niezalecane; zamiast tego użyj polecenia emulators:start)firebase serve --only hosting:TARGET_NAME
|
Wyświetla treść i konfigurację Hosting określonej witryny Hosting pod adresem URL hostowanym lokalnie. |