Udostępniaj zasoby projektu w wielu witrynach

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.

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: Aktualizacja wersji Firebase CLI

Dostęp do najbardziej aktualnej Firebase Hosting możliwości przez aktualizację do najnowszej wersji Firebase CLI .

Krok 2: Dodaj dodatkowych miejsc

Dodaj dodatkowe witryny do projektu Firebase, korzystając z jednej z następujących metod:

Dla każdej z tych metod, można określić SITE_ID który jest wykorzystywany do budowy Firebase-zabezpieczony domyślne subdomen na stronie:

  • SITE_ID .web.app
  • SITE_ID .firebaseapp.com

Ponieważ SITE_ID służy do tych adresów URL, identyfikator strona ma następujące wymagania:

  • Musi być poprawnym etykieta 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 strony, można też ewentualnie dodać niestandardowe domen służyć tej samej treści i konfigurację do wielu adresów URL.

Usuń witrynę dodatkową

Usuń niechciane witryny z projektu Firebase, korzystając z jednej z następujących metod:

Należy pamiętać, że nie można usunąć domyślnej witryny, która ma taką samą SITE_ID jako swojej Firebase ID projektu.

Krok 3: Skonfiguruj cele wdrożyć na swoich witrynach

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. Z celami zapłonnika można jednoznacznie zidentyfikować konkretną stronę z TARGET_NAME w swojej firebase.json pliku konfiguracyjnego i w swoich poleceń CLI Firebase testowania i wdrażania w swoich witrynach.

Aby utworzyć cel wdrożyć i stosować TARGET_NAME do witryny Hosting, uruchom następujące polecenia CLI z głównym katalogu projektu:

firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER

Gdzie parametry to:

  • TARGET_NAME - unikalna nazwa (które zostały zdefiniowane siebie) do serwisu Hosting, że jesteś wdrażania w

  • RESOURCE_IDENTIFIER - w SITE_ID dla serwisu Hosting, wymienionych w projekcie Firebase

Na przykład, jeśli utworzyliśmy dwa miejsca ( myapp-blog i myapp-app ) w projekcie Firebase, można zastosować unikalny TARGET_NAME ( blog i app , odpowiednio) 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 dla celów zapłonnika są przechowywane w .firebaserc pliku w katalogu projektu, więc trzeba tylko ustalaniu celów wdrożyć jeden raz w projekcie.

Krok 4: Definiowanie konfiguracji hosting dla każdej witryny

Użyj witryny stosowanej TARGET_NAME kiedy określenie jej konfiguracji hostingu w firebase.json pliku.

  • Jeśli firebase.json plik określa konfigurację wielu stron, 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 firebase.json plik określa konfigurację tylko w jednym miejscu, to nie jest konieczne stosowanie formatu tablicy:

    {
      "hosting": {
          "target": "blog",
          "public": "dist",
    
          // ...
    
          "rewrites": [...]
      }
    }
    

Krok 5: Test lokalnie, podgląd zmian i wdrażać do witryn

Uruchom dowolne z następujących poleceń z katalogu głównego lokalnego katalogu projektu.

Komenda Opis
firebase emulators:start --only hosting Emuluje zawartość Hosting i konfiguracji domyślnej witrynie hostingowej na lokalnie hostowane 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
Rozmieszcza zawartość Hosting i konfiguracji domyślnej witrynie hostingowej w podglądu URL
firebase hosting:channel:deploy \
CHANNEL_ID --only TARGET_NAME
Wdraża zawartość Hostingu i konfigurację określonej witryny Hostingu pod adresem URL podglądu
firebase deploy --only hosting Rozmieszcza zawartość Hosting i konfigurację na żywo kanału wszystkich stron Hosting skonfigurowanym w firebase.json
firebase deploy --only hosting: TARGET_NAME Wdraża zawartość i konfigurację Hostingu w aktywnym kanale określonej witryny Hostingu
Komenda Opis
(nie zalecane, użycie emulators:start zamiast)
firebase serve --only hosting
Służy zawartość Hosting i konfiguracji domyślnej witrynie hostingowej na lokalnie hostowane URL
(nie zalecane, użycie emulators:start zamiast)
firebase serve --only hosting: TARGET_NAME
Obsługuje zawartość hostingu i konfigurację określonej witryny hostingu pod lokalnie hostowanym adresem URL