Cele wdrożenia

Cele wdrożenia to krótkie nazwy identyfikatorów (zdefiniowane przez Ciebie) zasobów Firebase w Twoim projekcie Firebase, np. witryna Hosting z unikalnymi zasobami statycznymi lub grupa instancji Realtime Database, które mają te same zasady bezpieczeństwa.

Docelowe miejsca wdrożenia są przydatne, gdy masz kilka witryn Hosting, kilka zasobników Cloud Storage lub kilka instancji Realtime Database. Dzięki docelowym wdrożeniom interfejs wiersza poleceń Firebase może wdrażać ustawienia do konkretnego zasobu Firebase lub grupy zasobów w Twoim projekcie, takich jak:

  • Konfiguracja hostingu dla każdej witryny Hosting
  • zasoby statyczne z katalogu projektu dla każdej witryny Hosting,
  • Reguły zabezpieczeń udostępniane przez wiele instancji Realtime Database lub wiele zasobów Cloud Storage

Aby skonfigurować miejsce docelowe wdrożenia:

  1. Zastosuj TARGET_NAME do wybranego zasobu Firebase lub grupy zasobów Firebase.
  2. W pliku firebase.json odwołaj się do powiązanego pliku TARGET_NAME, gdy konfigurujesz ustawienia poszczególnych zasobów lub grupy zasobów.

Gdy uruchamiasz polecenia wiersza poleceń Firebase (np. firebase deploy), wiersz poleceń Firebase łączy każdy element TARGET_NAME z powiązanymi z nim zasobami Firebase. Następnie CLI przekazuje ustawienia każdego zasobu do projektu Firebase.

Konfigurowanie docelowych miejsc wdrożenia zasobów Firebase

Za pomocą wiersza poleceń Firebase zastosuj TARGET_NAME (krótki identyfikator zdefiniowany przez Ciebie) do zasobu Firebase lub grupy zasobów Firebase. Firebase obsługuje cele wdrażania dla:

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

Konfigurowanie docelowych wdrożeń w przypadku Hosting

Aby utworzyć środowisko docelowe wdrożenia i zastosować TARGET_NAME w witrynie Hosting, uruchom to polecenie w interfejsie wiersza poleceń:

firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER

Parametry:

  • TYPE – odpowiedni typ zasobu Firebase,

    • W przypadku witryn Firebase Hosting użyj wartości hosting.
  • TARGET_NAME – unikalna nazwa witryny Hosting, do której wdrażasz aplikację.

  • RESOURCE_IDENTIFIER – SITE_ID witryny Hosting wymienionej w Twoim projekcie Firebase

Jeśli na przykład w projekcie Firebase utworzysz 2 witryny (myapp-blogmyapp-app), możesz zastosować do każdej z nich unikalny identyfikator TARGET_NAME (odpowiednio blogapp), wykonując te polecenia:

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

Konfigurowanie docelowych wersji w przypadku Cloud Storage lub Realtime Database

Aby utworzyć środowisko docelowe i zastosować TARGET_NAME do zbioru zasobów Cloud Storage lub Realtime Database, uruchom to polecenie wiersza poleceń:

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

Parametry:

  • TYPE – odpowiedni typ zasobu Firebase,

    • W przypadku zbiorników Cloud Storage użyj storage.
    • W przypadku instancji Realtime Database użyj wartości 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 Twoim projekcie Firebase (np. nazwy zbiorów danych Firebase Storage lub identyfikatory instancji bazy danych), które mają te same reguły zabezpieczeń.

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

firebase target:apply storage main myproject.firebasestorage.app myproject-eu myproject-ja

Pamiętaj, że myproject.firebasestorage.app to identyfikator domyślnego zasobnika, a myproject-eumyproject-ja to 2 dodatkowe zbiory utworzone w projekcie Firebase.

Konfigurowanie pliku firebase.json w celu używania docelowych wdrożeń

Po skonfigurowaniu docelowych wdrożeń zasobów Firebase odwołuj się do każdego zastosowanego 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ą funkcji TARGET_NAME) i zdefiniuj ustawienia powiązanego zasobu Firebase lub grupy zasobów.

W przypadku przykładów z powyżej, gdy Twój projekt Firebase ma 2 witryny Hosting i 3 worki 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 masz wiele konfiguracji zasobów, możesz utworzyć wiele celów wdrażania i określić je w pliku firebase.json. Wszystkie powiązane zasoby zostaną wdrożone razem, gdy uruchomisz firebase deploy.

Zarządzanie celami wdrożenia

Ustawienia docelowych miejsc wdrożenia są przechowywane w pliku .firebaserc w katalogu projektu. Możesz zarządzać środowiskami docelowymi projektu, uruchamiając dowolne z tych poleceń w katalogu głównym katalogu projektu.

Polecenie Opis
firebase target Wyświetla cele wdrożenia dla bieżącego katalogu projektu.
firebase target:remove \
TYPE RESOURCE_IDENTIFIER
Usuwa zasób z obiektu docelowego, do którego jest przypisany.
firebase target:clear \
TYPE TARGET_NAME
Usuwa z wybranego celu wszystkie zasoby lub witrynę Hosting

Polecenia target:removetarget:clear automatycznie aktualizują ustawienia docelowe wdrożenia w pliku .firebaserc w katalogu projektu.

Testowanie lokalnie przed wdrożeniem

Uruchom dowolne z tych poleceń w katalogu głównym 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ę Hosting określonej witryny Hosting
firebase emulators:start \
--only storage:TARGET_NAME
Emuluje tylko plik reguł dla określonego obiektu docelowego Cloud Storage
firebase emulators:start \
--only database:TARGET_NAME
Emuluje tylko plik reguł dla określonego celu Realtime Database

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

Wdrażanie konkretnych zasobów Firebase

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

Polecenie Opis
firebase deploy Tworzy wersję wszystkich zasobów do wdrożenia w katalogu projektu.
firebase deploy \
--only hosting:TARGET_NAME
Wdrożenie tylko treści Hosting i konfiguracji określonej witryny Hosting na kanał witryny
firebase hosting:channel:deploy CHANNEL_ID \
--only TARGET_NAME
Wdrożenie tylko treści i konfiguracji Hosting określonej witryny Hosting na kanale podglądu tej witryny.
firebase deploy \
--only storage:TARGET_NAME
Wdrożenie tylko pliku reguł dla określonego celu Cloud Storage
firebase deploy \
--only database:TARGET_NAME
Wdrożenie tylko pliku reguł dla określonego celu Realtime Database