Wdrażanie celów

Cele wdrażania to krótkie identyfikatory (określane przez Ciebie) zasobów Firebase w projekcie Firebase, np. witryny Hostingu z unikalnymi zasobami statycznymi lub grupy instancji bazy danych czasu rzeczywistego, które mają te same reguły zabezpieczeń.

Cele wdrożenia są przydatne, gdy masz wiele witryn Hostingu, wiele zasobników Cloud Storage lub wiele instancji bazy danych czasu rzeczywistego. W przypadku celów wdrożenia interfejs wiersza poleceń Firebase może wdrażać ustawienia w konkretnym zasobie lub grupie zasobów Firebase w projekcie, na przykład:

  • konfigurację hostingu dla każdej witryny Hostingu.
  • zasoby statyczne z katalogu projektu dla każdej witryny w Hostingu.
  • Reguły zabezpieczeń współdzielone przez wiele instancji Bazy danych czasu rzeczywistego lub wiele zasobników Cloud Storage

Aby skonfigurować miejsce docelowe wdrożenia:

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

Gdy uruchamiasz polecenia interfejsu wiersza poleceń Firebase (np. firebase deploy), interfejs wiersza poleceń Firebase paruje każdy element TARGET_NAME ze swoimi powiązanymi zasobami Firebase. Interfejs wiersza poleceń komunikuje się z projektem Firebase w ustawieniach każdego zasobu.

Skonfiguruj cele wdrożenia dla zasobów Firebase

Za pomocą interfejsu wiersza poleceń Firebase zastosuj zdefiniowany przez Ciebie krótki identyfikator TARGET_NAME do zasobu Firebase lub grupy zasobów Firebase. Firebase obsługuje cele wdrożenia w przypadku:

Ustawienia celów wdrożenia są przechowywane w pliku .firebaserc w katalogu projektu, więc wystarczy, że skonfigurujesz je tylko raz w danym projekcie.

Konfigurowanie celów wdrażania w Hostingu

Aby utworzyć miejsce docelowe wdrożenia i zastosować TARGET_NAME w witrynie Hostingu, uruchom to polecenie interfejsu wiersza poleceń:

firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER

Gdzie parametry to:

  • TYPE – odpowiedni typ zasobu Firebase,

    • W przypadku witryn Hostingu Firebase użyj hosting.
  • TARGET_NAME – unikalna nazwa witryny Hostingu, w której wdrażasz projekt

  • RESOURCE_IDENTIFIERSITE_ID dla witryny Hostingu znajdującej się w projekcie Firebase

Jeśli np. w projekcie Firebase masz 2 witryny (myapp-blog i myapp-app), możesz zastosować do każdej z nich niepowtarzalne identyfikatory TARGET_NAME (odpowiednio blog i app), uruchamiając te polecenia:

firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app

Skonfiguruj cele wdrożenia dla Cloud Storage lub bazy danych czasu rzeczywistego

Aby utworzyć cel wdrożenia i zastosować TARGET_NAME do zbioru zasobów Cloud Storage lub bazy danych czasu rzeczywistego, uruchom to polecenie interfejsu wiersza poleceń:

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 zabezpieczeń

  • RESOURCE_IDENTIFIER – identyfikatory zasobów wymienionych w projekcie Firebase (np. nazwy zasobników pamięci masowej czy identyfikatory instancji bazy danych), które mają te same reguły zabezpieczeń;

Możesz na przykład zastosować TARGET_NAME z main do grupy 3 regionalnych zasobników Cloud Storage (które mają te same reguły zabezpieczeń), uruchamiając to polecenie:

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

Zwróć uwagę, że myproject.appspot.com to identyfikator domyślnego zasobnika, a myproject-eu i myproject-ja to 2 dodatkowe zasobniki utworzone w projekcie Firebase.

Skonfiguruj plik firebase.json, aby używać celów wdrożenia

Po ustawieniu celów wdrażania dla zasobów Firebase odnieś się do każdego zastosowanego elementu TARGET_NAME w pliku konfiguracji firebase.json:

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

Zgodnie z podanymi wyżej przykładami, gdzie w Twoim projekcie Firebase znajdują się 2 witryny hostingowe i 3 zasobniki Cloud Storage (które mają te same reguły zabezpieczeń), plik firebase.json będzie wyglądać tak:

{
  "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 zasoby mają wiele konfiguracji, możesz utworzyć wiele celów wdrożenia i określić każdą z nich w pliku firebase.json. Wszystkie powiązane zasoby zostaną wdrożone razem po uruchomieniu firebase deploy.

Zarządzaj celami wdrożenia

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

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

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

Przetestuj lokalnie przed wdrożeniem

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

Polecenie Opis
firebase emulators:start Emuluje wszystkie skonfigurowane zasoby w katalogu projektu
firebase emulators:start \
--only hosting:TARGET_NAME
Emuluje tylko zawartość i konfigurację podanej 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 w bazie danych czasu rzeczywistego

Dowiedz się więcej o konfigurowaniu i używaniu Pakietu emulatorów lokalnych Firebase.

Wdrażanie określonych zasobów Firebase

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

Polecenie Opis
firebase deploy Tworzy wersję wszystkich zasobów, które można wdrożyć w katalogu projektu
firebase deploy \
--only hosting:TARGET_NAME
Wdraża w aktywnym kanale witryny tylko zawartość i konfigurację podanej witryny Hostingu
firebase hosting:channel:deploy CHANNEL_ID \
--only TARGET_NAME
Wdraża w kanale podglądu witryny tylko zawartość i konfigurację Hostingu w określonej witrynie Hostingu.
firebase deploy \
--only storage:TARGET_NAME
Wdraża tylko plik reguł w określonym miejscu docelowym Cloud Storage
firebase deploy \
--only database:TARGET_NAME
Wdraża tylko plik reguł w przypadku określonego celu w Bazie danych czasu rzeczywistego