Manifest rozszerzeń to lista instancji rozszerzeń i ich konfiguracji. Za pomocą manifestu możesz:
- Podziel się konfiguracją rozszerzeń z innymi
- Skopiuj konfigurację rozszerzeń między różnymi projektami (np. z projektu tymczasowego do projektu produkcyjnego)
- Wdróż wszystkie rozszerzenia na raz
- Przetestuj, jak rozszerzenia współpracują z aplikacją, korzystając z pakietu Firebase Local Emulator Suite
- Zatwierdź konfigurację rozszerzeń w kontroli źródła
- Uwzględnij rozszerzenia w potoku CI/CD
Manifest rozszerzeń składa się z dwóch części:
Sekcja
extensions
plikufirebase.json
, która jest mapą 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ę każdej instancji rozszerzenia w podkataloguextensions/
katalogu projektu Firebase. Na przykład instancjastorage-resize-images
może mieć plik.env
podobny do poniższego: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ą interfejsu CLI Firebase
- Eksportuj konfigurację rozszerzeń projektu
- Edytuj pliki manifestu ręcznie
Pierwsze dwie metody opisano poniżej.
Zarządzaj manifestem rozszerzeń za pomocą interfejsu CLI Firebase
Większość poleceń ext:
interfejsu Firebase CLI można uruchomić z opcją --local
, aby zaktualizować manifest rozszerzeń bez faktycznej zmiany bieżącej konfiguracji projektu.
Na przykład:
firebase ext:install --local firebase/firestore-bigquery-export
Uruchomienie powyższego polecenia wyświetli monit o skonfigurowanie najnowszej wersji rozszerzenia firebase/firestore-bigquery-export
i zapisanie konfiguracji w manifeście, ale nie spowoduje to wdrożenia konfiguracji w twoim projekcie.
Oto kilka przykładów poleceń modyfikujących 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 interfejs wiersza polecenia Firebase
- W wierszu poleceń 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
. Dodatkowo polecenie ext:export
tworzy katalog extensions
zawierający plik .env
dla każdej zainstalowanej instancji rozszerzenia. Pliki te zawierają parametry konfiguracyjne dla każdej instancji.
Przetestuj konfigurację rozszerzeń za pomocą pakietu Firebase Local Emulator Suite
Po dodaniu wystąpień rozszerzeń do manifestu rozszerzeń możesz je przetestować za pomocą pakietu Local Emulator Suite.
Uruchom pakiet lokalnych emulatorów :
- Aby interaktywnie uruchomić pakiet emulatorów, uruchom:
firebase emulators:start
- Aby uruchomić pakiet emulatorów i wykonać skrypt testowy, uruchom:
firebase emulators:exec my-test.sh
- Aby interaktywnie uruchomić pakiet emulatorów, uruchom:
Teraz, jeśli masz instancje rozszerzeń wymienione w swoim manifeście, Local Emulator Suite pobierze kod źródłowy tych rozszerzeń do ~/.cache/firebase/extensions
. Po pobraniu zostanie uruchomiony pakiet lokalnych emulatorów, w którym będzie można uruchomić dowolne funkcje rozszerzeń uruchamiane w tle i połączyć aplikację z pakietem emulatorów, aby przetestować ich integrację z aplikacją.
Wdróż konfigurację rozszerzeń w projekcie
Po dodaniu kilku wystąpień rozszerzeń do manifestu rozszerzenia możesz wdrożyć je w projekcie za pomocą interfejsu wiersza polecenia Firebase. Podczas wdrażania z manifestem rozszerzeń instalujesz, aktualizujesz i konfigurujesz wszystkie wystąpienia rozszerzeń w manifeście w projekcie jednocześnie.
Aby wdrożyć manifest rozszerzeń:
- W wierszu poleceń 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, określ także--project=
:firebase deploy --only extensions –-project=YOUR_PROJECT_ID
Komenda deploy
sprawdzi poprawność konfiguracji każdej instancji, zapyta, czy chcesz usunąć z projektu docelowego jakiekolwiek instancje rozszerzeń, których nie ma na liście w firebase.json
, a następnie wdroży wszystkie instancje rozszerzeń.
Konfiguracje rozszerzeń specyficzne dla projektu
Zapisane konfiguracje rozszerzeń można wykorzystać do wdrożenia w wielu różnych projektach: na przykład projekcie przejściowym i projekcie produkcyjnym. W takim przypadku wartości niektórych parametrów mogą być inne 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 podczas emulacji rozszerzeń możesz chcieć użyć innej wartości parametru: na przykład możesz chcieć podać testowy klucz API zamiast produkcyjnego. Umieść te parametry w pliku .local
:
- Umieść niejawne parametry, których chcesz używać podczas emulacji, w
extensions/ EXTENSION_INSTANCE_ID .env.local
- Umieść tajne wartości parametrów w
extensions/ EXTENSION_INSTANCE_ID .secret.local