W jednym projekcie Firebase możesz skonfigurować co najmniej 1 witrynę Firebase Hosting. Wszystkie witryny znajdują się w tym samym projekcie Firebase, więc mają dostęp do innych zasobów Firebase w tym projekcie.
- Każda witryna ma własną konfigurację hostingu.
- Każda witryna zawiera własną kolekcję treści.
- Każda witryna może mieć co najmniej 1 powiązaną domenę.
Konfigurując w tym samym projekcie Firebase wiele witryn Hosting, możesz łatwiej udostępniać zasoby Firebase powiązanym witrynom i aplikacjom. Jeśli na przykład skonfigurujesz bloga, panel administracyjny i publiczną aplikację jako osobne witryny w tym samym projekcie Firebase, wszystkie te witryny będą mogły korzystać z tej samej Firebase Authentication bazy danych użytkowników, a jednocześnie będą miały własne 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 Firebase, korzystając z jednej z tych metod:
Użyj przepływu pracy na stronie Hosting w konsoli Firebase.
Użyj polecenia wiersza poleceń Firebase:
firebase hosting:sites:create SITE_ID
Użyj Hostinginterfejsu API REST:
projects.sites.create
W przypadku każdej z tych metod musisz podać SITE_ID
, który służy do tworzenia domyślnych subdomen witryny udostępnianych przez Firebase:
SITE_ID.web.app
SITE_ID.firebaseapp.com
Ponieważ w przypadku tych adresów URL jest używany identyfikator SITE_ID
, identyfikator witryny musi spełniać te wymagania:
- Musi to być prawidłowa etykieta nazwy hosta, co oznacza, że nie może zawierać znaków
.
,_
itp. - Maksymalna liczba znaków to 30.
- Musi być globalnie niepowtarzalna w Firebase.
Do każdej witryny możesz też opcjonalnie dodać domeny niestandardowe, aby wyświetlać te same treści i konfigurację w przypadku wielu adresów URL.
Usuwanie witryny dodatkowej
Aby usunąć niechciane witryny z projektu Firebase, użyj jednej z tych metod:
Użyj przepływu pracy na stronie Hosting w konsoli Firebase.
Użyj polecenia wiersza poleceń Firebase:
firebase hosting:sites:delete SITE_ID
Użyj Hostinginterfejsu API REST:
projects.sites.delete
Pamiętaj, że nie możesz usunąć witryny domyślnej, która ma ten sam identyfikator SITE_ID
co Twój projekt Firebase.
SITE_ID
Krok 3. Skonfiguruj cele wdrożenia dla swoich witryn
Jeśli masz wiele witryn i uruchamiasz polecenia Firebase interfejsu wiersza poleceń, interfejs wiersza poleceń musi mieć możliwość określenia, które ustawienia mają zostać zastosowane do każdej witryny. Dzięki celom wdrażania możesz jednoznacznie identyfikować konkretną witrynę za pomocą parametru TARGET_NAME
w pliku konfiguracji firebase.json
i w poleceniach wiersza poleceń, które służą do testowania lub wdrażania w Twoich witrynach.Firebase
Aby utworzyć miejsce docelowe wdrożenia i zastosować TARGET_NAME
w witrynie Hosting, uruchom to polecenie wiersza poleceń w katalogu głównym katalogu projektu:
firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER
Parametry:
TARGET_NAME – unikalna nazwa (określona przez Ciebie) witryny Hosting, do której wdrażasz treści.
RESOURCE_IDENTIFIER –
SITE_ID
witryny Hosting wymienionej w Twoim projekcie Firebase
Jeśli na przykład w projekcie Firebase utworzysz 2 witryny (myapp-blog
i myapp-app
), możesz zastosować do każdej z nich unikalny identyfikator TARGET_NAME
(odpowiednio blog
i app
), wykonują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 wystarczy skonfigurować cele wdrożenia tylko raz na projekt.
Krok 4. Określ konfigurację hostingu dla każdej witryny.
Używaj pliku TARGET_NAME
witryny, gdy definiujesz jej konfigurację hostingu w pliku firebase.json
.
Jeśli plik
firebase.json
definiuje konfigurację dla 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.json
definiuje konfigurację tylko jednej witryny, nie musisz używać formatu tablicowego:{ "hosting": { "target": "blog", "public": "dist", // ... "rewrites": [...] } }
Krok 5. Testuj lokalnie, wyświetl podgląd zmian i wdróż je w swoich witrynach
Uruchom dowolne z tych poleceń w katalogu głównym lokalnego katalogu projektu.
Polecenie | Opis |
---|---|
firebase emulators:start --only hosting |
Emuluje zawartość i konfigurację Hosting witryny domyślnej Hosting w przypadku adresu URL hostowanego lokalnie. |
firebase emulators:start --only hosting:TARGET_NAME |
Emuluje zawartość i konfigurację witryny Hosting pod adresem URL hostowanym lokalnie.Hosting |
firebase hosting:channel:deploy \ |
Wdrożenie treści i konfiguracji witryny Hosting (domyślnej) Hosting pod adresem URL podglądu. |
firebase hosting:channel:deploy \ |
Wskazuje adres URL podglądu Hosting witryny Hosting, na której mają zostać wdrożone treści i konfiguracja Hosting |
firebase deploy --only hosting |
Wdrożenie treści i konfiguracji Hosting na kanale na żywo wszystkich witryn Hosting skonfigurowanych w firebase.json
|
firebase deploy --only hosting:TARGET_NAME |
Wdraża treści i konfigurację Hosting na kanale na żywo określonej witryny Hosting |
Polecenie | Opis |
---|---|
(nie zalecane; użyj zamiast tego emulators:start )firebase serve --only hosting
|
Dostarcza zawartość i konfigurację witryny Hosting domyślnej Hosting z adresu URL hostowanego lokalnie. |
(nie zalecane; użyj zamiast tego emulators:start )firebase serve --only hosting:TARGET_NAME
|
Udostępnia zawartość i konfigurację witryny Hosting pod adresem URL hostowanym lokalnie.Hosting |