W jednym projekcie Firebase możesz skonfigurować co najmniej jedną witrynę Hosting Firebase. Ponieważ wszystkie witryny należą do tego samego projektu Firebase, wszystkie mają dostęp do innych zasobów Firebase w projekcie.
- Każda witryna ma własną konfigurację hostingu .
- Każda witryna zawiera własną kolekcję treści.
- Każda witryna może mieć jedną lub więcej powiązanych domen .
Konfigurując wiele witryn hostingowych w tym samym projekcie 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 uwierzytelniania Firebase, mając jednocześnie własne unikalne domeny lub treści.
Krok 1 : Zaktualizuj wersję Firebase CLI
Uzyskaj dostęp do najnowszych funkcji Hostingu Firebase, aktualizując do najnowszej wersji interfejsu wiersza polecenia Firebase .
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 Hostingowego interfejsu API REST:
projects.sites.create
Dla każdej z tych metod określasz SITE_ID
który jest używany do tworzenia domyślnych subdomen dla witryny SITE_ID
przez SITE_ID
:
-
SITE_ID .web.app
-
SITE_ID .firebaseapp.com
Ponieważ SITE_ID
jest używany w tych adresach URL, identyfikator witryny ma następujące wymagania:
- Musi być prawidłową etykietą nazwy hosta, co oznacza, że nie może zawierać
.
,_
itp. - Musi mieć maksymalnie 30 znaków
- Musi być unikalna w skali globalnej w Firebase
Do każdej witryny możesz także opcjonalnie dodać domeny niestandardowe, aby udostępniać tę samą zawartość i konfigurację pod wieloma adresami 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 interfejsu Hosting REST API:
projects.sites.delete
Pamiętaj, że nie możesz usunąć domyślnej witryny, która ma ten sam SITE_ID
co SITE_ID
Twojego projektu SITE_ID
.
Krok 3 : Skonfiguruj cele wdrażania dla swoich witryn
Jeśli masz wiele witryn i uruchamiasz polecenia wdrażania interfejsu wiersza polecenia Firebase, interfejs wiersza polecenia wymaga sposobu komunikowania się, które ustawienia powinny zostać wdrożone w każdej lokacji. Dzięki celom wdrażania możesz jednoznacznie zidentyfikować konkretną witrynę za pomocą TARGET_NAME
w pliku konfiguracyjnym firebase.json
oraz w poleceniach interfejsu wiersza polecenia Firebase do testowania lub wdrażania w swoich witrynach.
Aby utworzyć cel wdrażania i zastosować TARGET_NAME
w witrynie 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 - unikatowa nazwa (którą sam zdefiniowałeś) dla witryny hostingowej, w której realizujesz wdrażanie
RESOURCE_IDENTIFIER -
SITE_ID
dla witryny hostingowej wymieniona 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 zastosowanej dla witryny TARGET_NAME
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 jest konieczne używanie formatu tablicy:{ "hosting": { "target": "blog", "public": "dist", // ... "rewrites": [...] } }
Krok 5 : Testuj lokalnie, wyświetl podgląd zmian i wdrażaj w swoich witrynach
Uruchom dowolne z następujących 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 wersji zapoznawczej |
firebase hosting:channel:deploy \ | Wdraża zawartość hostingu i konfigurację określonej witryny hostingu pod adresem URL wersji zapoznawczej |
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 lokacji hostingu |
Komenda | Opis |
---|---|
(niezalecane; użyj emulators:start zamiast tego emulators:start )firebase serve --only hosting | Udostępnia zawartość hostingu i konfigurację domyślnej witryny hostingu pod lokalnie hostowanym adresem URL |
(niezalecane; użyj emulators:start zamiast tego emulators:start )firebase serve --only hosting: TARGET_NAME | Udostępnia zawartość hostingu i konfigurację określonej witryny hostingu pod lokalnie hostowanym adresem URL |