Rozmieść cele

Cele wdrożenia to krótkie identyfikatory (które sam definiujesz) zasobów Firebase w projekcie Firebase, np. witryna hostingowa z unikalnymi zasobami statycznymi lub grupa instancji bazy danych czasu rzeczywistego, które korzystają z tych samych reguł bezpieczeństwa.

Cele wdrażania są przydatne, jeśli masz wiele witryn hostingowych , wiele zasobników Cloud Storage lub wiele instancji bazy danych czasu rzeczywistego . Dzięki elementom docelowym wdrażania interfejs wiersza polecenia Firebase może wdrożyć ustawienia do określonego zasobu Firebase lub grupy zasobów w projekcie, na przykład:

  • Konfiguracja hostingu dla każdej z Twoich witryn hostingowych
  • Zasoby statyczne z katalogu projektu dla każdej witryny hostingowej
  • Reguły bezpieczeństwa współdzielone przez wiele instancji bazy danych Realtime Database lub wiele zasobników Cloud Storage

Aby skonfigurować cel wdrożenia:

  1. Zastosuj TARGET_NAME do docelowego zasobu Firebase lub grupy zasobów Firebase.
  2. W pliku firebase.json odwołuj się do powiązanego TARGET_NAME podczas konfigurowania ustawień dla każdego zasobu lub grupy zasobów.

Po uruchomieniu poleceń Firebase CLI (takich jak firebase deploy ), interfejs CLI Firebase łączy w parę każdy TARGET_NAME z powiązanymi z nim zasobami Firebase. Następnie interfejs CLI przekazuje projektowi Firebase ustawienia każdego zasobu.

Skonfiguruj cele wdrażania dla zasobów Firebase

Korzystając z interfejsu CLI Firebase, zastosuj TARGET_NAME (identyfikator krótkiej nazwy, który sam definiujesz) do zasobu Firebase lub grupy zasobów Firebase. Firebase obsługuje cele wdrażania dla:

Ustawienia celów wdrażania są przechowywane w pliku .firebaserc w katalogu projektu, więc wystarczy skonfigurować cele wdrażania tylko raz na projekt.

Skonfiguruj cele wdrożenia dla hostingu

Aby utworzyć miejsce docelowe wdrożenia i zastosować TARGET_NAME w witrynie hostingowej, uruchom następującą komendę CLI:

firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER

Gdzie parametry to:

  • TYPE — odpowiedni typ zasobu Firebase

    • W przypadku witryn Firebase Hosting użyj hosting .
  • TARGET_NAME — unikalna nazwa witryny hostingowej, w której przeprowadzasz wdrożenie

  • RESOURCE_IDENTIFIERSITE_ID witryny hostingowej wymieniony w projekcie Firebase

Na przykład, jeśli w projekcie Firebase utworzyłeś dwie witryny ( myapp-blog i myapp-app ), 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

Skonfiguruj cele wdrażania dla Cloud Storage lub Bazy danych czasu rzeczywistego

Aby utworzyć miejsce docelowe wdrożenia i zastosować TARGET_NAME do zestawu zasobów Cloud Storage lub Realtime Database, uruchom następującą komendę CLI:

firebase target:apply TYPE TARGET_NAME RESOURCE-1_IDENTIFIER RESOURCE-2_IDENTIFIER ...

Gdzie parametry to:

  • TYPE — odpowiedni typ zasobu Firebase

    • W przypadku zasobników Cloud Storage użyj storage .
    • W przypadku instancji bazy danych czasu rzeczywistego użyj database .
  • TARGET_NAME — unikalna nazwa zasobu lub grupy zasobów, które mają wspólne reguły bezpieczeństwa

  • RESOURCE_IDENTIFIER — identyfikatory zasobów wymienione w projekcie Firebase (takie jak nazwy zasobników pamięci lub identyfikatory instancji bazy danych), które mają te same reguły bezpieczeństwa

Na przykład możesz zastosować TARGET_NAME main do grupy trzech regionalnych zasobników Cloud Storage (które mają te same reguły bezpieczeństwa), uruchamiając następujące polecenie:

firebase target:apply storage main myproject.appspot.com myproject-eu myproject-ja

Pamiętaj, że myproject.appspot.com jest identyfikatorem domyślnego segmentu, podczas gdy myproject-eu i myproject-ja to dwa dodatkowe segmenty utworzone w projekcie Firebase.

Skonfiguruj plik firebase.json tak, aby korzystał z obiektów docelowych wdrażania

Po skonfigurowaniu celów wdrażania dla zasobów Firebase odwołaj się do każdego zastosowanego TARGET_NAME w pliku konfiguracyjnym firebase.json :

  1. Utwórz tablicę obiektów konfiguracyjnych dla każdego TYPE zasobu Firebase ( hosting , storage lub database ).
  2. W tablicach określ target (używając TARGET_NAME ) i zdefiniuj ustawienia dla powiązanego zasobu lub grupy zasobów Firebase.

Kontynuując powyższe przykłady, w których Twój projekt Firebase ma dwie witryny hostingowe i trzy zasobniki Cloud Storage (które mają te same reguły bezpieczeństwa), Twój plik firebase.json będzie wyglądał następująco:

{
  "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
    }
  ]
}

{
  "storage": [ {
      "target": "main",  // "main" is the applied TARGET_NAME for the group of Cloud Storage buckets
      "rules": "storage.main.rules"  // the file that contains the shared security rules
    }
  ]
}

Jeśli masz wiele konfiguracji zasobów, możesz utworzyć wiele obiektów docelowych wdrożenia i określić każdy z nich w pliku firebase.json . Wszystkie powiązane zasoby zostaną wdrożone razem po uruchomieniu firebase deploy .

Zarządzaj celami wdrażania

Ustawienia celów wdrażania są przechowywane w pliku .firebaserc w katalogu projektu. Możesz zarządzać miejscami docelowymi wdrażania projektu, uruchamiając dowolne z poniższych poleceń z katalogu głównego katalogu projektu.

Komenda Opis
firebase target Wyświetla listę celów wdrożenia dla bieżącego katalogu projektu
firebase target:remove \
TYPE RESOURCE_IDENTIFIER
Usuwa zasób z celu, do którego został przypisany
firebase target:clear \
TYPE TARGET_NAME
Usuwa wszystkie zasoby lub witrynę hostingową z określonego miejsca docelowego

Polecenia target:remove i target:clear automatycznie aktualizują ustawienia miejsca docelowego wdrażania w pliku .firebaserc w katalogu projektu.

Przed wdrożeniem przetestuj lokalnie

Uruchom dowolne z poniższych poleceń z katalogu głównego katalogu projektu.

Komenda Opis
firebase emulators:start Emuluje wszystkie skonfigurowane zasoby w katalogu projektu
firebase emulators:start \
--only hosting: TARGET_NAME
Emuluje tylko zawartość hostingu i konfigurację określonej witryny hostingu
firebase emulators:start \
--only storage: TARGET_NAME
Emuluje tylko plik reguł dla określonego celu Cloud Storage
firebase emulators:start \
--only database: TARGET_NAME
Emuluje tylko plik reguł dla określonego celu Bazy danych czasu rzeczywistego

Dowiedz się więcej o konfigurowaniu i używaniu pakietu Firebase Local Emulator Suite .

Wdróż określone zasoby Firebase

Uruchom dowolne z poniższych poleceń z katalogu głównego katalogu projektu.

Komenda Opis
firebase deploy Tworzy wersję wszystkich możliwych do wdrożenia zasobów w katalogu projektu
firebase deploy \
--only hosting: TARGET_NAME
Wdraża tylko zawartość hostingu i konfigurację określonej witryny hostingu w kanale na żywo witryny
firebase hosting:channel:deploy CHANNEL_ID \
--only TARGET_NAME
Wdraża tylko zawartość hostingu i konfigurację określonej witryny hostingu w kanale podglądu witryny
firebase deploy \
--only storage: TARGET_NAME
Wdraża tylko plik reguł dla określonego celu Cloud Storage
firebase deploy \
--only database: TARGET_NAME
Wdraża tylko plik reguł dla określonego celu bazy danych czasu rzeczywistego