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:
- Zastosuj
TARGET_NAME
do docelowego zasobu Firebase lub grupy zasobów Firebase. - W pliku
firebase.json
odwołaj się do powiązanegoTARGET_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:
- Witryny w Hostingu Firebase
- Zasobniki pamięci masowej Cloud Storage dla Firebase
- Instancje Bazy danych czasu rzeczywistego Firebase
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
.
- W przypadku witryn Hostingu Firebase użyj
TARGET_NAME – unikalna nazwa witryny Hostingu, w której wdrażasz projekt
RESOURCE_IDENTIFIER –
SITE_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
.
- W przypadku zasobnikó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 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
:
- 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 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 \
|
Usuwa zasób z miejsca 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 swojego katalogu projektu.
Polecenie | Opis |
---|---|
firebase emulators:start
|
Emuluje wszystkie skonfigurowane zasoby w katalogu projektu |
firebase emulators:start \ |
Emuluje tylko zawartość i konfigurację podanej 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 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 \
|
Wdraża w aktywnym kanale witryny tylko zawartość i konfigurację podanej witryny Hostingu |
firebase hosting:channel:deploy CHANNEL_ID \ |
Wdraża w kanale podglądu witryny tylko zawartość i konfigurację Hostingu w określonej witrynie Hostingu. |
firebase deploy \
|
Wdraża tylko plik reguł w określonym miejscu docelowym Cloud Storage |
firebase deploy \
|
Wdraża tylko plik reguł w przypadku określonego celu w Bazie danych czasu rzeczywistego |