Save the date - Google I/O returns May 18-20. Register to get the most out of the digital experience: Build your schedule, reserve space, participate in Q&As, earn Google Developer profile badges, and more. Register now
Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Udostępniaj zasoby projektowe w wielu witrynach

W jednym projekcie Firebase możesz skonfigurować co najmniej jedną witrynę Hosting Firebase. Ponieważ wszystkie witryny należą do tego samego projektu Firebase, wszystkie mają dostęp do innych zasobów Firebase w projekcie.

Konfigurując wiele witryn hostingowych w tym samym projekcie 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 uwierzytelniania Firebase, mając jednocześnie własne unikalne domeny lub treści.

Krok 1 : Zaktualizuj wersję Firebase CLI

Uzyskaj dostęp do najnowszych funkcji Hostingu Firebase, aktualizując do najnowszej wersji interfejsu wiersza polecenia Firebase .

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

  • Skorzystaj z Hostingowego interfejsu API REST:projects.sites.create

Dla każdej z tych metod określasz SITE_ID który jest używany do tworzenia domyślnych subdomen dla witryny SITE_ID przez SITE_ID :

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

Ponieważ SITE_ID jest używany w tych adresach URL, identyfikator witryny ma następujące wymagania:

  • Musi być prawidłową etykietą nazwy hosta, co oznacza, że ​​nie może zawierać . , _ itp.
  • Musi mieć maksymalnie 30 znaków
  • Musi być unikalna w skali globalnej w Firebase

Do każdej witryny możesz także opcjonalnie dodać domeny niestandardowe, aby udostępniać tę samą zawartość 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 interfejsu Hosting REST API:projects.sites.delete

Pamiętaj, że nie możesz usunąć domyślnej witryny, która ma ten sam SITE_ID co SITE_ID Twojego projektu SITE_ID .

Krok 3 : Skonfiguruj cele wdrażania dla swoich witryn

Jeśli masz wiele witryn i uruchamiasz polecenia wdrażania interfejsu wiersza polecenia Firebase, interfejs wiersza polecenia wymaga sposobu komunikowania się, które ustawienia powinny zostać wdrożone w każdej lokacji. Dzięki celom wdrażania możesz jednoznacznie zidentyfikować konkretną witrynę za pomocą TARGET_NAME w pliku konfiguracyjnym firebase.json oraz w poleceniach interfejsu wiersza polecenia Firebase do testowania lub wdrażania w swoich witrynach.

Aby utworzyć cel wdrażania i zastosować TARGET_NAME w witrynie 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 - unikatowa nazwa (którą sam zdefiniowałeś) dla witryny hostingowej, w której realizujesz wdrażanie

  • RESOURCE_IDENTIFIER - SITE_ID dla witryny hostingowej wymieniona 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 zastosowanej dla witryny TARGET_NAME 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 jest konieczne używanie formatu tablicy:

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

Krok 5 : Testuj lokalnie, wyświetl podgląd zmian i wdrażaj 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 wersji zapoznawczej
firebase hosting:channel:deploy \
CHANNEL_ID --only TARGET_NAME
Wdraża zawartość hostingu i konfigurację określonej witryny hostingu pod adresem URL wersji zapoznawczej
firebase deploy --only hosting Wdraża zawartość i konfigurację hostingu w kanale na żywo wszystkich witryn hostingowych skonfigurowanych w firebase.json
firebase deploy --only hosting: TARGET_NAME Wdraża zawartość i konfigurację hostingu w kanale na żywo określonej lokacji hostingu
Komenda Opis
(niezalecane; użyj emulators:start zamiast tego emulators:start )
firebase serve --only hosting
Udostępnia zawartość hostingu i konfigurację domyślnej witryny hostingu pod lokalnie hostowanym adresem URL
(niezalecane; użyj emulators:start zamiast tego emulators:start )
firebase serve --only hosting: TARGET_NAME
Udostępnia zawartość hostingu i konfigurację określonej witryny hostingu pod lokalnie hostowanym adresem URL