Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Udostępniaj zasoby projektu w wielu witrynach

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

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 : 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_IDENTIFIERSITE_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 \
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ść 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