W jednym projekcie Firebase możesz skonfigurować co najmniej jedną witrynę w Hostingu 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 zawiera własną kolekcję treści.
- Każda witryna może mieć co najmniej jedną powiązaną domenę .
Konfigurując wiele witryn w Hostingu w ramach tego samego projektu Firebase, możesz łatwiej udostępniać zasoby Firebase między powiązanymi witrynami i aplikacjami. Jeśli na przykład skonfigurujesz swojego bloga, panel administracyjny i aplikację publiczną jako osobne witryny w tym samym projekcie Firebase, mogą one korzystać z tej samej bazy danych użytkowników Uwierzytelniania Firebase, 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 interfejs wiersza polecenia Firebase 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 Hostingowego API REST:
projects.sites.create
W przypadku każdej z tych metod określisz SITE_ID
, który jest używany do tworzenia domyślnych subdomen obsługiwanych przez Firebase dla witryny:
-
SITE_ID .web.app
-
SITE_ID .firebaseapp.com
Ponieważ SITE_ID
jest używany dla tych adresów URL, identyfikator witryny ma następujące wymagania:
- Musi być prawidłową etykietą nazwy hosta, co oznacza, że nie może zawierać
.
,_
itd. - Musi mieć 30 znaków lub mniej
- Musi być globalnie unikalny w Firebase
Do każdej witryny możesz również opcjonalnie dodać niestandardowe domeny, aby wyświetlać tę samą treść 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 Hostingowego API REST:
projects.sites.delete
Pamiętaj, że nie możesz usunąć witryny domyślnej, która ma taki sam SITE_ID
jak identyfikator projektu Firebase.
Krok 3 : Skonfiguruj cele wdrażania dla swoich witryn
Jeśli masz wiele witryn i uruchamiasz polecenia wdrażania interfejsu Firebase CLI, interfejs wiersza polecenia wymaga sposobu komunikowania, które ustawienia powinny zostać wdrożone w każdej z witryn. Dzięki celom wdrażania możesz jednoznacznie zidentyfikować określoną witrynę za pomocą TARGET_NAME
w pliku konfiguracyjnym firebase.json
oraz w poleceniach interfejsu wiersza polecenia Firebase w celu przetestowania lub wdrożenia w swoich 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 — unikalna nazwa (zdefiniowana przez Ciebie) witryny hostingowej, w której wdrażasz
RESOURCE_IDENTIFIER –
SITE_ID
witryny w Hostingu zgodnie z Twoim projektem Firebase
Jeśli na przykład w projekcie Firebase utworzyłeś dwie witryny ( myapp-blog
i myapp-app
), możesz zastosować unikatową TARGET_NAME
(odpowiednio blog
i app
), 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 w witrynie TARGET_NAME
podczas definiowania konfiguracji jej 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 Twój plik
firebase.json
definiuje konfigurację tylko dla jednej witryny, nie musisz używać formatu tablicy:{ "hosting": { "target": "blog", "public": "dist", // ... "rewrites": [...] } }
Krok 5 : Przetestuj lokalnie, wyświetl podgląd zmian i wdróż 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 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 aktywnym kanale wszystkich witryn Hostingu skonfigurowanych w firebase.json |
firebase deploy --only hosting: TARGET_NAME | Wdraża zawartość i konfigurację Hostingu w aktywnym kanale określonej witryny Hostingu |
Komenda | Opis |
---|---|
(niezalecane; zamiast tego używaj emulators:start )firebase serve --only hosting | Obsługuje zawartość hostingu i konfigurację domyślnej witryny hostingu pod lokalnie hostowanym adresem URL |
(niezalecane; zamiast tego używaj emulators:start )firebase serve --only hosting: TARGET_NAME | Obsługuje zawartość hostingu i konfigurację określonej witryny hostingu pod lokalnie hostowanym adresem URL |