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:
- Zastosuj
TARGET_NAME
do docelowego zasobu Firebase lub grupy zasobów Firebase. - Podczas konfigurowania ustawień dla każdego zasobu lub grupy zasobów odwołaj się do powiązanego zasobu
TARGET_NAME
w plikufirebase.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:
- Witryny Hostingu Firebase
- Zasobniki na dane Cloud Storage dla Firebase
- Instancje Bazy danych czasu rzeczywistego Firebase
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
.
- W przypadku witryn Hostingu Firebase użyj
TARGET_NAME – unikalna nazwa witryny Hostingu, w której wdrażasz usługę
RESOURCE_IDENTIFIER –
SITE_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
.
- W przypadku zasobników Cloud Storage użyj
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
:
- Utwórz tablicę obiektów konfiguracji dla każdego zasobu Firebase
TYPE
(hosting
,storage
lubdatabase
). - 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 \
|
Usuwa zasób z środowiska docelowego, do którego został przypisany |
firebase target:clear \
|
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 \ |
Emuluje tylko treść i konfigurację określonej witryny Hostingu |
firebase emulators:start \
|
Emuluje tylko plik reguł dla określonego celu Cloud Storage |
firebase emulators:start \
|
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 \
|
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 \ |
Wdraża tylko treść i konfigurację określonej witryny Hostingu w kanale podglądu witryny |
firebase deploy \
|
Wdraża tylko plik reguł dla określonego miejsca docelowego Cloud Storage |
firebase deploy \
|
Wdraża tylko plik reguł dla określonego celu Bazy danych czasu rzeczywistego |