Możesz skonfigurować jedną lub więcej witryn Firebase Hosting w jednym projekcie Firebase. Ponieważ wszystkie witryny znajdują się w tym samym projekcie Firebase, wszystkie witryny mogą uzyskać dostęp do innych zasobów Firebase projektu.
- Każda witryna ma własną konfigurację hostingu .
- Każda witryna zawiera własny zbiór treści.
- Z każdą witryną może być powiązana jedna lub więcej domen .
Konfigurując wiele witryn hostingowych w tym samym projekcie Firebase, możesz łatwiej udostępniać zasoby Firebase pomię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 korzystać z tej samej bazy danych użytkowników Firebase Authentication, mając jednocześnie własne unikalne domeny lub treści.
Krok 1 : Zaktualizuj wersję Firebase CLI
Uzyskaj dostęp do najnowszych funkcji Firebase Hosting , aktualizując do najnowszej wersji Firebase CLI .
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
Skorzystaj z API REST Hostingu:
projects.sites.create
Dla każdej z tych metod określisz identyfikator SITE_ID
, który będzie używany do tworzenia domyślnych subdomen udostępnianych przez Firebase dla witryny:
-
SITE_ID .web.app
-
SITE_ID .firebaseapp.com
Ponieważ w przypadku tych adresów URL używany jest SITE_ID
, identyfikator witryny ma następujące wymagania:
- Musi to być prawidłowa etykieta nazwy hosta, co oznacza, że nie może zawierać
.
,_
itp. - Musi mieć maksymalnie 30 znaków
- Musi być globalnie unikalny w Firebase
Do każdej witryny możesz także opcjonalnie dodać domeny niestandardowe , aby wyświetlać tę samą treść i konfigurację pod wieloma adresami URL.
Usuń lokację 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
Skorzystaj z API REST Hostingu:
projects.sites.delete
Pamiętaj, że nie możesz usunąć witryny domyślnej, która ma ten sam SITE_ID
co identyfikator projektu Firebase.
Krok 3 : Skonfiguruj cele wdrażania dla swoich witryn
Jeśli masz wiele witryn i uruchamiasz polecenia wdrażania interfejsu CLI Firebase, interfejs CLI potrzebuje sposobu na przekazanie informacji, które ustawienia powinny zostać wdrożone 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 interfejsu CLI Firebase na potrzeby testowania lub wdrażania w swoich witrynach.
Aby utworzyć miejsce docelowe wdrożenia i zastosować TARGET_NAME
w witrynie hostingowej, uruchom następującą komendę CLI z katalogu głównego katalogu projektu:
firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER
Gdzie parametry to:
TARGET_NAME — unikalna nazwa (samodzielnie zdefiniowana) witryny hostingowej, w której wdrażasz
RESOURCE_IDENTIFIER —
SITE_ID
witryny hostingowej wymieniony w projekcie Firebase
Na przykład, jeśli w projekcie Firebase utworzyłeś dwie witryny ( myapp-blog
i myapp-app
), 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 zastosowanego 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 dla jednej witryny, nie ma potrzeby używania formatu tablicy:{ "hosting": { "target": "blog", "public": "dist", // ... "rewrites": [...] } }
Krok 5 : Przetestuj lokalnie, przejrzyj zmiany i wdróż je 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 adresem URL hostowanym lokalnie |
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ść hostingu i konfigurację określonej witryny hostingu pod adresem URL podglądu |
firebase deploy --only hosting | Wdraża zawartość i konfigurację hostingu w kanale na żywo wszystkich witryn hostingowych skonfigurowanych w firebase.json |
firebase deploy --only hosting: TARGET_NAME | Wdraża zawartość i konfigurację hostingu w kanale na żywo określonej witryny hostingu |
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 |