Cele wdrożenia

Cele wdrożenia to krótkie identyfikatory (które samodzielnie definiujesz) dla zasobów Firebase w Twoim projekcie Firebase, np. witryny Hostingu z unikalnymi zasobami statycznymi lub grupa instancji Bazy danych czasu rzeczywistego, które korzystają z tych samych reguł zabezpieczeń.

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

  • konfigurację hostingu każdej z witryn w Hostingu,
  • zasoby statyczne z katalogu projektu dla każdej z Twoich witryn w Hostingu.
  • Reguły zabezpieczeń współużytkowane 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. Podczas konfigurowania ustawień dla każdego zasobu lub grupy zasobów odwołaj się do powiązanego zasobu TARGET_NAME w pliku firebase.json.

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

Skonfiguruj cele wdrożenia dla zasobów Firebase

Za pomocą interfejsu wiersza poleceń Firebase zastosuj TARGET_NAME (skrótowy identyfikator, który określasz samodzielnie) do zasobu lub grupy zasobów Firebase. Firebase obsługuje cele wdrożenia dla:

Ustawienia celów wdrożenia są przechowywane w pliku .firebaserc w katalogu projektu, dlatego wystarczy, że skonfigurujesz cele wdrożenia tylko raz na projekt.

Konfigurowanie celów wdrożenia na potrzeby Hostingu

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

firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER

Gdzie parametry:

  • TYPE – odpowiedni typ zasobu Firebase,

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

  • RESOURCE_IDENTIFIERSITE_ID dla witryny w Hostingu zgodnie z danymi w projekcie Firebase

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

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

Konfigurowanie celów wdrożenia dla Cloud Storage lub bazy danych czasu rzeczywistego

Aby utworzyć miejsce docelowe wdrożenia i zastosować zadanie TARGET_NAME do zbioru zasobów Cloud Storage lub Bazy danych czasu rzeczywistego, uruchom to polecenie w interfejsie wiersza poleceń:

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

Gdzie parametry:

  • 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 – niepowtarzalna 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 na dane lub identyfikatory instancji bazy danych), które mają te same reguły zabezpieczeń.

Możesz na przykład zastosować wartość TARGET_NAME właściwości main do grupy 3 regionalnych zasobników Cloud Storage (wszystkie 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.

Konfigurowanie pliku firebase.json z celami wdrożenia

Gdy skonfigurujesz cele wdrożenia dla zasobów Firebase, odwołaj się do każdego zastosowania 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 powiązanego zasobu lub grupy zasobów Firebase.

Nawiązując do powyższych przykładów, w którym projekt Firebase zawiera 2 witryny Hostingu i 3 zasobniki Cloud Storage (które mają te same reguły zabezpieczeń), plik firebase.json 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 masz wiele konfiguracji zasobów, możesz utworzyć wiele celów wdrożenia i określić każdą z nich w pliku firebase.json. Po uruchomieniu firebase deploy wszystkie powiązane zasoby zostaną wdrożone razem.

Zarządzaj celami wdrożenia

Ustawienia celów wdrożenia są przechowywane w pliku .firebaserc w katalogu projektu. Celami wdrożenia w projekcie możesz zarządzać, uruchamiając dowolne z tych poleceń w katalogu głównym 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 środowiska 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 projektu.

Polecenie Opis
firebase emulators:start Emuluje wszystkie skonfigurowane zasoby w katalogu projektu
firebase emulators:start \
--only hosting:TARGET_NAME
Emuluje tylko treść 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 korzystaniu z Pakietu emulatorów lokalnych Firebase.

Wdrażanie określonych zasobów Firebase

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

Polecenie Opis
firebase deploy Tworzy wersję wszystkich zasobów możliwych do wdrożenia w katalogu projektu
firebase deploy \
--only hosting:TARGET_NAME
Wdraża tylko treści i konfigurację z Hostingu określonej witryny w Hostingu na aktywnym kanale tej witryny
firebase hosting:channel:deploy CHANNEL_ID \
--only TARGET_NAME
Wdraża tylko treść 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 miejsca docelowego Cloud Storage
firebase deploy \
--only database:TARGET_NAME
Wdraża tylko plik reguł dla określonego celu Bazy danych czasu rzeczywistego