W jednym projekcie Firebase możesz skonfigurować co najmniej 1 witrynę Firebase Hosting. Ponieważ wszystkie witryny znajdują się w tym samym projekcie 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 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 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
Krok 2. Dodaj dodatkowe witryny
Dodaj dodatkowe witryny do projektu 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 API REST:
projects.sites.createHosting
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ć domeny niestandardowe, aby wyświetlać tę samą treść i konfigurację pod wieloma adresami URL.
Usuwanie witryny dodatkowej
Usuń niechciane witryny z projektu 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 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. |