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:
- Zastosuj
TARGET_NAME
do wybranego zasobu Firebase lub grupy zasobów Firebase. - W pliku
firebase.json
odwołaj się do powiązanego plikuTARGET_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:
- Firebase Hosting witryn
- Cloud Storage for Firebase zasobników na dane
- Firebase Realtime Database instancji
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
.
- W przypadku witryn Firebase Hosting użyj wartości
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-blog
i myapp-app
), możesz zastosować do każdej z nich unikalny identyfikator TARGET_NAME
(odpowiednio blog
i app
), 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
.
- W przypadku zbiorników Cloud Storage użyj
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-eu
i myproject-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
:
- Utwórz tablicę obiektów konfiguracji dla każdego zasobu Firebase
TYPE
(hosting
,storage
lubdatabase
). - W tablicach określ
target
(za pomocą funkcjiTARGET_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 \
|
Usuwa zasób z obiektu docelowego, do którego jest przypisany. |
firebase target:clear \
|
Usuwa z wybranego celu wszystkie zasoby lub witrynę Hosting |
Polecenia target:remove
i target: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 \ |
Emuluje tylko zawartość i konfigurację Hosting określonej witryny Hosting |
firebase emulators:start \
|
Emuluje tylko plik reguł dla określonego obiektu docelowego Cloud Storage |
firebase emulators:start \
|
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 \
|
Wdrożenie tylko treści Hosting i konfiguracji określonej witryny Hosting na kanał witryny |
firebase hosting:channel:deploy CHANNEL_ID \ |
Wdrożenie tylko treści i konfiguracji Hosting określonej witryny Hosting na kanale podglądu tej witryny. |
firebase deploy \
|
Wdrożenie tylko pliku reguł dla określonego celu Cloud Storage |
firebase deploy \
|
Wdrożenie tylko pliku reguł dla określonego celu Realtime Database |