Manifest rozszerzeń to lista wystąpień rozszerzeń i ich konfiguracji. Za pomocą manifestu możesz:
- Udostępnij swoją konfigurację rozszerzeń innym
- Skopiuj konfigurację rozszerzeń między różnymi projektami (np. z projektu przejściowego do projektu produkcyjnego)
- Wdrażaj wszystkie rozszerzenia jednocześnie
- Przetestuj, jak Twoje rozszerzenia współpracują z Twoją aplikacją, korzystając z pakietu Firebase Local Emulator Suite
- Zatwierdź konfigurację rozszerzeń do kontroli źródła
- Uwzględnij rozszerzenia w potoku CI/CD
Manifest rozszerzeń składa się z dwóch części:
Sekcja
extensions
Twojegofirebase.json
, która jest odwzorowaniem identyfikatora instancji na odniesienie do wersji rozszerzenia. Na przykład:{ "extensions": { "my-bigquery-extension": "firebase/firestore-bigquery-export@^0.1.18", "my-image-resizer": "firebase/storage-resize-images@^0.1.22", } }
Pliki
.env
zawierające konfigurację dla każdej instancji rozszerzenia w podkataloguextensions/
katalogu projektu Firebase. Na przykład instancjastorage-resize-images
może mieć plik.env
podobny do następującego:IMAGE_TYPE=jpeg LOCATION=us-central1 IMG_BUCKET=${param:PROJECT_ID}.appspot.com IMG_SIZES=100x100 DELETE_ORIGINAL_FILE=false
Utwórz manifest rozszerzeń
Istnieją trzy sposoby tworzenia manifestu rozszerzeń:
- Zarządzaj manifestem rozszerzeń za pomocą Firebase CLI
- Eksportuj konfigurację rozszerzeń projektu
- Edytuj pliki manifestu ręcznie
Poniżej wyjaśniono dwie pierwsze metody.
Zarządzaj manifestem rozszerzeń za pomocą Firebase CLI
Możesz uruchomić większość poleceń ext:
Firebase CLI z opcją --local
, aby zaktualizować manifest rozszerzeń bez rzeczywistej zmiany bieżącej konfiguracji projektu.
Na przykład:
firebase ext:install --local firebase/firestore-bigquery-export
Uruchomienie powyższego polecenia spowoduje wyświetlenie monitu o skonfigurowanie najnowszej wersji rozszerzenia firebase/firestore-bigquery-export
i zapisanie konfiguracji w manifeście, ale konfiguracja nie zostanie wdrożona w projekcie.
Oto kilka innych przykładów poleceń, które modyfikują manifest rozszerzeń:
# ext:configure changes the params for an extension instance in your extensions manifest
$ firebase ext:configure my-bigquery-extension --local
# ext:update --local updates an instance in your extensions manifest
# to the latest version of that extension
$ firebase ext:update my-bigquery-extension --local
# You can also specify a version if you don't want to update to the latest version
$ firebase ext:update my-bigquery-extension firebase/firestore-bigquery-export@0.1.10 --local
# ext:uninstall --local removes an instance from your extensions manifest
$ firebase ext:uninstall my-bigquery-extension --local
Eksportuj konfigurację rozszerzeń projektu
Aby zapisać bieżącą konfigurację rozszerzeń projektu w manifeście, wykonaj następujące czynności:
- Jeśli jeszcze tego nie zrobiłeś, skonfiguruj Firebase CLI
- Z zachęty powłoki przejdź do katalogu projektu. (Twój katalog projektu zawiera plik
firebase.json
). - Uruchom polecenie
ext:export
:firebase ext:export
Polecenie ext:export
doda sekcję extensions
do pliku firebase.json
. Ponadto polecenie ext:export
tworzy katalog extensions
zawierający plik .env
dla każdego zainstalowanego wystąpienia rozszerzenia. Te pliki zawierają parametry konfiguracyjne dla każdej instancji.
Przetestuj konfigurację rozszerzeń za pomocą pakietu Firebase Local Emulator Suite
Po dodaniu niektórych wystąpień rozszerzeń do manifestu rozszerzeń możesz je przetestować za pomocą pakietu Local Emulator Suite.
Uruchom lokalny pakiet emulatorów :
- Aby interaktywnie uruchomić Emulator Suite, uruchom:
firebase emulators:start
- Aby uruchomić Emulator Suite i wykonać skrypt testowy, uruchom:
firebase emulators:exec my-test.sh
- Aby interaktywnie uruchomić Emulator Suite, uruchom:
Teraz, jeśli masz wymienione w manifeście instancje rozszerzeń, pakiet Local Emulator Suite pobierze kod źródłowy tych rozszerzeń do ~/.cache/firebase/extensions
. Po ich pobraniu uruchomi się Local Emulator Suite i będziesz mógł uruchomić dowolne funkcje rozszerzeń wyzwalane w tle oraz połączyć swoją aplikację z pakietem Emulator, aby przetestować ich integrację z Twoją aplikacją.
Wdróż konfigurację rozszerzeń w projekcie
Po dodaniu niektórych wystąpień rozszerzeń do manifestu rozszerzenia możesz wdrożyć je w projekcie przy użyciu interfejsu wiersza polecenia Firebase. Podczas wdrażania z manifestem rozszerzeń instalujesz, aktualizujesz i konfigurujesz wszystkie wystąpienia rozszerzeń w manifeście jednocześnie w projekcie.
Aby wdrożyć manifest rozszerzeń:
- Z zachęty powłoki przejdź do katalogu zawierającego zapisaną konfigurację rozszerzeń. (To jest katalog zawierający
firebase.json
. Jeśli właśnie uruchomiłeśext:export
, jesteś już we właściwym katalogu.) - Uruchom polecenie
deploy
. Jeśli chcesz wdrożyć rozszerzenia w projekcie innym niż bieżący, podaj również--project=
:firebase deploy --only extensions –-project=YOUR_PROJECT_ID
Polecenie deploy
sprawdzi poprawność konfiguracji każdej instancji, zapyta, czy chcesz usunąć z projektu docelowego wszystkie instancje rozszerzeń, które nie są wymienione w firebase.json
, a następnie wdroży wszystkie instancje rozszerzeń.
Konfiguracje rozszerzeń specyficzne dla projektu
Zapisane konfiguracje rozszerzeń mogą służyć do wdrażania w wielu różnych projektach: na przykład w projekcie przejściowym i projekcie produkcyjnym. W takim przypadku niektóre wartości parametrów mogą wymagać różnych wartości dla każdego projektu. Umożliwiają to pliki .env
specyficzne dla projektu:
- Umieść wartości parametrów różniące się między projektami w
extensions/ EXTENSION_INSTANCE_ID .env. YOUR_PROJECT_ID
- Umieść wartości parametrów współdzielonych w
extensions/ EXTENSION_INSTANCE_ID .env
.
Czasami możesz chcieć użyć innej wartości parametru podczas emulowania swoich rozszerzeń: na przykład możesz podać testowy klucz API zamiast produkcyjnego. Umieść te parametry w pliku .local
:
- Umieść nietajne parametry, których chcesz użyć podczas emulacji w
extensions/ EXTENSION_INSTANCE_ID .env.local
- Umieść tajne wartości parametrów w
extensions/ EXTENSION_INSTANCE_ID .secret.local