Współdziel zasoby projektu w wielu witrynach

W jednej Firebase możesz skonfigurować co najmniej 1 witrynę Firebase Hosting w projektach AI. Wszystkie witryny znajdują się w tym samym projekcie Firebase, dostęp do innych zasobów Firebase w projekcie.

Skonfigurowanie kilku witryn Hosting w tym samym projekcie Firebase mogą łatwiej udostępniać zasoby Firebase między powiązanymi witrynami i aplikacjami. Dla: Jeśli na przykład skonfigurujesz blog, panel administracyjny i aplikację publiczną jako w jednym projekcie Firebase, mogą mieć wspólny Firebase Authentication, a jednocześnie mają własne unikalne domeny lub treści.

Krok 1. Zaktualizuj wersję interfejsu wiersza poleceń Firebase

Uzyskaj dostęp do najnowszych funkcji Firebase Hosting przez aktualizuję do najnowszej wersji interfejsu wiersza poleceń Firebase.

Krok 2. Dodaj kolejne witryny

Dodaj więcej witryn do projektu Firebase, korzystając z jednej z tych metod:

  • Użyj przepływu pracy na stronie Hosting strona konsoli Firebase

  • Użyj polecenia interfejsu wiersza poleceń Firebase: firebase hosting:sites:create SITE_ID.

  • Użyj interfejsu API REST Hosting: projects.sites.create.

W przypadku każdej z tych metod musisz określić właściwość SITE_ID, która służy do tworzenia domyślne subdomeny witryny udostępnione przez Firebase:

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

Ponieważ w przypadku tych adresów URL jest używany parametr SITE_ID, identyfikator witryny zawiera: wymagania:

  • Musi być prawidłową etykietą nazwy hosta, co oznacza, że nie może zawierać ., _ itp.
  • Może mieć nie więcej niż 30 znaków
  • Musi być globalnie unikalne w obrębie Firebase

W każdej witrynie możesz też opcjonalnie dodać domeny niestandardowe, aby wyświetlać te same treści; do wielu adresów URL.

Usuwanie witryny dodatkowej

Usuń niechciane witryny z projektu Firebase, korzystając z jednej z tych opcji metody:

  • Użyj przepływu pracy na stronie Hosting strona konsoli Firebase

  • Użyj polecenia interfejsu wiersza poleceń Firebase: firebase hosting:sites:delete SITE_ID.

  • Użyj interfejsu API REST Hosting: projects.sites.delete.

Pamiętaj, że nie możesz usunąć witryny domyślnej, która ma taką samą SITE_ID jak witryna. identyfikatora projektu Firebase.

Krok 3. Skonfiguruj cele wdrożenia w witrynach

Gdy masz wiele witryn i uruchomisz polecenia wdrażania interfejsu wiersza poleceń Firebase, wartości Interfejs wiersza poleceń musi mieć sposób przekazywania informacji, które ustawienia należy wdrożyć w każdym witrynie. Dzięki celom wdrożenia możesz jednoznacznie identyfikować konkretnej witryny z TARGET_NAME w tagu Plik konfiguracji firebase.json oraz w Firebasepoleceniach interfejsu wiersza poleceń w przypadku testowania i wdrażania w witrynach.

Aby utworzyć miejsce docelowe wdrożenia i zastosować TARGET_NAME do witryny Hosting, uruchom to polecenie interfejsu wiersza poleceń w katalogu głównym projektu:

firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER

Gdzie parametry:

  • TARGET_NAME – niepowtarzalna nazwa (zdefiniowana przez Ciebie) dla raportu Hosting witryna, w której wdrażasz

  • RESOURCE_IDENTIFIER – pole SITE_ID dla witryny Hosting takie jak są dostępne w projekcie Firebase.

Jeśli np. utworzysz 2 witryny (myapp-blog i myapp-app) w sekcji projektu Firebase, możesz zastosować unikalny identyfikator TARGET_NAME (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 wdrożenia są przechowywane w pliku .firebaserc w projektu, musisz więc skonfigurować cele wdrożenia tylko raz w projektach AI.

Krok 4. Określ konfigurację hostingu każdej witryny

Aby określić hostowanie, użyj atrybutu TARGET_NAME zastosowanego do witryny w 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 tablicy:

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

Krok 5. Przetestuj lokalnie, wyświetl podgląd zmian i wprowadź wdrożenie w swoich witrynach

Uruchom dowolne z tych poleceń w katalogu głównym lokalnego projektu.

Polecenie Opis
firebase emulators:start --only hosting Emuluje zawartość i konfigurację parametru Hosting domyślna witryna Hosting na serwerze lokalnym Adres URL
firebase emulators:start --only hosting:TARGET_NAME Emuluje zawartość i konfigurację określonego zasobu (Hosting) Hosting witryna pod adresem URL hostowanym lokalnie
firebase hosting:channel:deploy \
CHANNEL_ID
Wdraża zawartość i konfigurację Hosting default – witryna Hosting pod adresem URL podglądu
firebase hosting:channel:deploy \
CHANNEL_ID --only TARGET_NAME
Wdraża zawartość i konfigurację Hosting określonego Hosting witryna z adresem URL podglądu
firebase deploy --only hosting Wdraża zawartość i konfigurację Hosting w aktywnym kanale z wszystkich Hosting witryn skonfigurowanych w firebase.json
firebase deploy --only hosting:TARGET_NAME Wdraża zawartość i konfigurację Hosting w aktywnym kanale z określonej Hosting witryny
Polecenie Opis
(niezalecane; zamiast tego użyj emulators:start)
firebase serve --only hosting
Obsługuje treść i konfigurację Hosting domyślna witryna Hosting na serwerze lokalnym Adres URL
(niezalecane; zamiast tego użyj emulators:start)
firebase serve --only hosting:TARGET_NAME
Obsługuje treść i konfigurację określonego zasobu (Hosting) Hosting witryna pod adresem URL hostowanym lokalnie