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.
- Z każdą witryną może być powiązana co najmniej 1 domena.
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 publiczną aplikację jako osobne witryny w tym samym projekcie Firebase, wszystkie te witryny będą mogły korzystać z tej samej bazy danych użytkowników Firebase Authentication, 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 więcej witryn 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 być prawidłową etykietą 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.
Krok 3. Skonfiguruj cele wdrożenia w witrynach
Jeśli masz wiele witryn i uruchomisz polecenia wdrażania interfejsu wiersza poleceń Firebase, interfejs wiersza poleceń musi mieć sposób informowania, które ustawienia należy wdrożyć w każdej witrynie. Dzięki celom wdrażania możesz jednoznacznie identyfikować konkretną witrynę za pomocą parametru TARGET_NAME
w pliku konfiguracji firebase.json
i w Firebasepoleceniach wiersza poleceń, które służą do testowania lub wdrażania w Twoich witrynach.
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
Gdzie 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, dlatego wystarczy, że skonfigurujesz 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. Przetestuj lokalnie, wyświetl podgląd zmian i wprowadź wdrożenie 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 domyślnej witryny 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 \ |
Wdraża zawartość i konfigurację Hosting domyślnej witryny 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 |