Un manifest delle estensioni è un elenco di istanze di estensioni con le relative configurazioni. Con il file manifest puoi:
- Condividi la configurazione delle estensioni con altri utenti
- Copia la configurazione delle estensioni tra progetti diversi (ad esempio da dal progetto di gestione temporanea al progetto di produzione)
- Esegui il deployment di tutte le estensioni contemporaneamente
- Verifica il funzionamento delle estensioni con la tua app utilizzando l'Firebase Local Emulator Suite
- Esegui il commit della configurazione delle estensioni per il controllo del codice sorgente
- Includi estensioni nella pipeline CI/CD
Un manifest delle estensioni è composto da due parti:
La sezione
extensions
difirebase.json
, che è una mappa di istanze ID al riferimento alla versione dell'estensione. Ad esempio:{ "extensions": { "my-bigquery-extension": "firebase/firestore-bigquery-export@^0.1.18", "my-image-resizer": "firebase/storage-resize-images@^0.1.22", } }
.env
file contenenti la configurazione di ciascuna estensione di istanze VM nella sottodirectoryextensions/
del tuo progetto Firebase . Ad esempio, un'istanza distorage-resize-images
potrebbe avere un file.env
come il seguente:IMAGE_TYPE=jpeg LOCATION=us-central1 IMG_BUCKET=${param:PROJECT_ID}.appspot.com IMG_SIZES=100x100 DELETE_ORIGINAL_FILE=false
Creare un manifest delle estensioni
Esistono tre modi per creare un manifest delle estensioni:
- Gestisci il manifest delle estensioni con l'interfaccia a riga di comando di Firebase
- Esportare la configurazione delle estensioni di un progetto
- Modificare manualmente i file manifest
I primi due metodi sono descritti di seguito.
Gestire il manifest delle estensioni con l'interfaccia a riga di comando di Firebase
Puoi eseguire la maggior parte dei comandi ext:
di Firebase CLI con l'opzione --local
per aggiornare il manifest delle estensioni senza modificare effettivamente la configurazione corrente del progetto.
Ad esempio:
firebase ext:install --local firebase/firestore-bigquery-export
L'esecuzione del comando precedente ti chiederà di configurare la versione più recente di
firebase/firestore-bigquery-export
e salva la configurazione in
il manifest, ma non ne verrà eseguito il deployment nel progetto.
Di seguito sono riportati altri esempi di comandi che modificano il file manifest delle estensioni:
# 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
Esportare la configurazione delle estensioni di un progetto
Per salvare la configurazione corrente delle estensioni di un progetto nel manifest, esegui la seguenti:
- Se non lo hai già fatto, configura l'interfaccia a riga di comando di Firebase
- Da un prompt della shell, passa alla directory del progetto. (il tuo progetto
contiene il file
firebase.json
). - Esegui il comando
ext:export
:firebase ext:export
Il comando ext:export
aggiungerà una sezione extensions
a firebase.json
. Inoltre, il comando ext:export
crea una directory extensions
contenente un file .env
per ogni istanza di estensione installata. Questi
file contengono i parametri di configurazione per ogni istanza.
Testa la configurazione di una estensione con Firebase Local Emulator Suite
Dopo aver aggiunto alcune istanze di estensioni al manifest delle estensioni, puoi testarle utilizzando Local Emulator Suite.
-
- Per eseguire Emulator Suite in modo interattivo, esegui:
firebase emulators:start
- Per eseguire Emulator Suite ed eseguire uno script di test, esegui:
firebase emulators:exec my-test.sh
- Per eseguire Emulator Suite in modo interattivo, esegui:
Se nel file manifest sono elencate le istanze delle estensioni,
Local Emulator Suite scaricherà il codice sorgente di queste estensioni su
~/.cache/firebase/extensions
. Una volta scaricate, verrà avviato Local Emulator Suite e potrai attivare qualsiasi funzione attivata in background delle estensioni e connettere la tua app alla suite Emulator per testarne l'integrazione.
Esegui il deployment di una configurazione delle estensioni in un progetto
Dopo aver aggiunto alcune istanze di estensione al file manifest dell'estensione, puoi: eseguirne il deployment in un progetto utilizzando l'interfaccia a riga di comando di Firebase. Quando esegui il deployment con del file manifest, installi, aggiorni e configuri tutte le estensioni più istanze del manifest in un progetto.
Per eseguire il deployment di un manifest delle estensioni:
- Da un prompt della shell, vai alla directory contenente la configurazione delle estensioni salvata. Questa è la directory che contiene
firebase.json
. Se hai appena corsoext:export
, sei già a destra .) - Esegui il comando
deploy
. Se vuoi eseguire il deployment delle estensioni in un progetto diverso da quello corrente, specifica anche--project=
:firebase deploy --only extensions –-project=YOUR_PROJECT_ID
Il comando deploy
convaliderà ogni configurazione dell'istanza. Chiedi se vuoi
eliminare dal progetto di destinazione tutte le istanze di estensione che non sono
elencato in firebase.json
, quindi esegui il deployment di tutte le istanze dell'estensione.
Configurazioni di estensioni specifiche per progetto
Le configurazioni delle estensioni salvate possono essere utilizzate per eseguire il deployment in più progetti diversi: ad esempio, un progetto di gestione temporanea e un progetto di produzione. In questo modo, alcuni valori dei parametri potrebbero dover essere diversi per ogni progetto.
I file .env
specifici del progetto rendono possibile quanto segue:
- Inserisci in
extensions/EXTENSION_INSTANCE_ID.env.YOUR_PROJECT_ID
i valori dei parametri che differiscono tra i progetti - Inserisci i valori dei parametri condivisi in
extensions/EXTENSION_INSTANCE_ID.env
.
A volte, potresti voler utilizzare un valore parametro diverso durante l'emulazione
Estensioni: ad esempio, potresti voler fornire una chiave API di test anziché una
quella di produzione. Inserisci questi parametri in un file .local
:
- Inserisci i parametri non segreti da utilizzare durante l'emulazione in
extensions/EXTENSION_INSTANCE_ID.env.local
- Inserisci i valori dei parametri del secret
extensions/EXTENSION_INSTANCE_ID.secret.local