欢迎参加我们将于 2022 年 10 月 18 日举办的 Firebase 峰会(线上线下同时进行),了解 Firebase 如何帮助您加快应用开发速度、满怀信心地发布应用并在之后需要时轻松地扩大应用规模。立即报名

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 : 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