Możesz skonfigurować jedną lub więcej witryn Hostingu Firebase w jednym projekcie Firebase. Ponieważ wszystkie witryny znajdują się w tym samym projekcie Firebase, wszystkie witryny mają dostęp do innych zasobów Firebase projektu.
- Każda witryna ma własną konfigurację hostingu .
- Każda witryna udostępnia własny zbiór treści.
- Każda witryna może mieć jedną lub więcej powiązanych domen .
Konfigurując wiele witryn hostingowych w ramach tego samego projektu Firebase, możesz łatwiej udostępniać zasoby Firebase między powiązanymi witrynami i aplikacjami. Na przykład, jeśli skonfigurujesz swojego bloga, panel administracyjny i aplikację publiczną jako osobne witryny w tym samym projekcie Firebase, wszystkie one będą mogły współużytkować tę samą bazę danych użytkowników Firebase Authentication, a jednocześnie mieć własne unikalne domeny lub treści.
Krok 1 : Zaktualizuj wersję Firebase CLI
Uzyskaj dostęp do najnowszych funkcji Hostingu Firebase , aktualizując Firebase CLI do najnowszej wersji .
Krok 2 : Dodaj dodatkowe witryny
Dodaj dodatkowe witryny do projektu Firebase, korzystając z jednej z następujących metod:
Użyj przepływu pracy na stronie Hosting w konsoli Firebase
Użyj polecenia Firebase CLI:
firebase hosting:sites:create SITE_ID
Użyj Hosting REST API:
projects.sites.create
Dla każdej z tych metod określ identyfikator SITE_ID
, który jest używany do konstruowania domyślnych subdomen udostępnianych przez Firebase dla witryny:
-
SITE_ID .web.app
-
SITE_ID .firebaseapp.com
Ponieważ dla tych adresów URL używany jest SITE_ID
, identyfikator witryny ma następujące wymagania:
- Musi być prawidłową etykietą nazwy hosta, co oznacza, że nie może zawierać rozszerzenia
.
,_
itd. - Musi mieć maksymalnie 30 znaków
- Musi być globalnie unikalny w Firebase
Do każdej witryny można również opcjonalnie dodać domeny niestandardowe , aby udostępniać tę samą treść i konfigurację dla wielu adresów URL.
Usuń witrynę dodatkową
Usuń niechciane witryny z projektu Firebase, korzystając z jednej z następujących metod:
Użyj przepływu pracy na stronie Hosting w konsoli Firebase
Użyj polecenia Firebase CLI:
firebase hosting:sites:delete SITE_ID
Użyj Hosting REST API:
projects.sites.delete
Pamiętaj, że nie możesz usunąć domyślnej witryny, która ma taki sam SITE_ID
jak identyfikator projektu Firebase.
Krok 3 : Skonfiguruj cele wdrażania dla swoich witryn
Gdy masz wiele witryn i uruchamiasz polecenia wdrażania Firebase CLI, interfejs CLI potrzebuje sposobu komunikowania się, które ustawienia należy wdrożyć w każdej witrynie. Dzięki celom wdrażania możesz jednoznacznie zidentyfikować konkretną witrynę za pomocą TARGET_NAME
w pliku konfiguracyjnym firebase.json
oraz w poleceniach Firebase CLI do testowania lub wdrażania w witrynach.
Aby utworzyć miejsce docelowe wdrożenia i zastosować TARGET_NAME
do witryny Hostingu, uruchom następujące polecenie CLI z katalogu głównego katalogu projektu:
firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER
Gdzie parametry to:
TARGET_NAME — niepowtarzalna nazwa (zdefiniowana przez Ciebie) witryny hostingowej, w której wdrażasz
RESOURCE_IDENTIFIER —
SITE_ID
dla witryny Hostingu wymieniony w Twoim projekcie Firebase
Na przykład, jeśli utworzyłeś dwie witryny ( myapp-blog
i myapp-app
) w swoim projekcie Firebase, możesz zastosować unikalną TARGET_NAME
(odpowiednio blog
i app
) do każdej witryny, uruchamiając następujące polecenia:
firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app
Ustawienia celów wdrażania są przechowywane w pliku .firebaserc
w katalogu projektu, więc wystarczy skonfigurować cele wdrażania tylko raz na projekt.
Krok 4 : Zdefiniuj konfigurację hostingu dla każdej witryny
Użyj TARGET_NAME
zastosowanej do witryny podczas definiowania jej konfiguracji 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 dla jednej witryny, nie trzeba używać formatu tablicowego:{ "hosting": { "target": "blog", "public": "dist", // ... "rewrites": [...] } }
Krok 5 : Przetestuj lokalnie, wyświetl podgląd zmian i wdróż w swoich witrynach
Uruchom dowolne z poniższych poleceń z katalogu głównego lokalnego katalogu projektu.
Komenda | Opis |
---|---|
firebase emulators:start --only hosting | Emuluje zawartość Hostingu i konfigurację domyślnej witryny Hostingu pod lokalnie hostowanym adresem URL |
firebase emulators:start --only hosting: TARGET_NAME | Emuluje zawartość Hostingu i konfigurację określonej witryny Hostingu pod lokalnie hostowanym adresem URL |
firebase hosting:channel:deploy \ | Wdraża zawartość Hostingu i konfigurację domyślnej witryny Hostingu pod adresem URL podglądu |
firebase hosting:channel:deploy \ | Wdraża zawartość i konfigurację hostingu określonej witryny hostingowej pod adresem URL podglądu |
firebase deploy --only hosting | Wdraża zawartość i konfigurację hostingu w aktywnym kanale wszystkich witryn hostingowych skonfigurowanych w firebase.json |
firebase deploy --only hosting: TARGET_NAME | Wdraża zawartość i konfigurację hostingu w aktywnym kanale określonej witryny hostingowej |
Komenda | Opis |
---|---|
(niezalecane; zamiast tego użyj emulators:start )firebase serve --only hosting | Udostępnia zawartość Hostingu i konfigurację domyślnej witryny Hostingu pod lokalnie hostowanym adresem URL |
(niezalecane; zamiast tego użyj emulators:start )firebase serve --only hosting: TARGET_NAME | Udostępnia zawartość Hostingu i konfigurację określonej witryny Hostingu pod lokalnie hostowanym adresem URL |