Catch up on highlights from Firebase at Google I/O 2023. Learn more

Udostępniaj zasoby projektu w wielu witrynach

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.

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:

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:

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_IDENTIFIERSITE_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 \
CHANNEL_ID
Wdraża zawartość Hostingu i konfigurację domyślnej witryny Hostingu pod adresem URL podglądu
firebase hosting:channel:deploy \
CHANNEL_ID --only TARGET_NAME
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