Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Gestisci le configurazioni del progetto con il manifest delle estensioni

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Un manifest delle estensioni è un elenco di istanze di estensioni e le relative configurazioni. Con il manifest puoi:

  • Condividi la configurazione delle estensioni con gli altri
  • Copia la configurazione delle estensioni tra diversi progetti (ad esempio dal tuo progetto di staging al tuo progetto di produzione)
  • Distribuisci tutte le tue estensioni contemporaneamente
  • Verifica come funzionano le tue estensioni con la tua app utilizzando Firebase Local Emulator Suite
  • Impegna la configurazione delle estensioni al controllo del codice sorgente
  • Includi estensioni nella pipeline CI/CD

Un manifest delle estensioni ha due parti:

  • La sezione delle extensions di firebase.json , che è una mappa dell'ID istanza al riferimento della versione dell'estensione. Per esempio:

    {
     "extensions": {
       "my-bigquery-extension": "firebase/firestore-bigquery-export@^0.1.18",
       "my-image-resizer": "firebase/storage-resize-images@^0.1.22",
     }
    }
    
  • File .env contenenti la configurazione per ciascuna delle tue istanze di estensione, nella sottodirectory extensions/ della directory del tuo progetto Firebase. Ad esempio, un'istanza di storage-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

Crea 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
  • Esporta la configurazione delle estensioni di un progetto
  • Modifica manualmente i file manifest

I primi due metodi sono spiegati di seguito.

Gestisci il manifest delle estensioni con l'interfaccia a riga di comando di Firebase

Puoi eseguire la maggior parte dei comandi ext: della CLI di Firebase con l'opzione --local per aggiornare il manifest delle estensioni senza modificare effettivamente la configurazione corrente del progetto.

Per esempio:

firebase ext:install --local firebase/firestore-bigquery-export

L'esecuzione del comando precedente ti chiederà di configurare l'ultima versione firebase/firestore-bigquery-export e di salvare la configurazione nel manifest, ma non distribuirà la configurazione al tuo progetto.

Ecco alcuni altri esempi di comandi che modificano il 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

Esporta la configurazione delle estensioni di un progetto

Per salvare la configurazione corrente delle estensioni di un progetto nel manifest, procedi come segue:

  1. Se non l'hai già fatto, configura la CLI di Firebase
  2. Da un prompt della shell, passare alla directory del progetto. (La directory del tuo progetto contiene il file firebase.json ).
  3. Eseguire il comando ext:export :
    firebase ext:export

Il comando ext:export aggiungerà una sezione delle extensions al file firebase.json . Inoltre, il comando ext:export crea una directory delle extensions contenente un file .env per ogni istanza di estensione che hai installato. Questi file contengono i parametri di configurazione per ciascuna istanza.

Testare una configurazione di estensioni con Firebase Local Emulator Suite

Dopo aver aggiunto alcune istanze di estensione al manifest delle estensioni, puoi testarle utilizzando Local Emulator Suite.

  1. Installa e configura Local Emulator Suite .

  2. Avvia la suite di emulatori locali :

    • Per eseguire Emulator Suite in modo interattivo, eseguire: firebase emulators:start
    • Per eseguire Emulator Suite ed eseguire uno script di test, eseguire: firebase emulators:exec my-test.sh

Ora, se hai istanze di estensione elencate nel tuo manifest, Local Emulator Suite scaricherà il codice sorgente di tali estensioni in ~/.cache/firebase/extensions . Una volta scaricati, verrà avviata la suite di emulatori locali e sarai in grado di attivare qualsiasi funzione attivata in background delle estensioni e connettere la tua app alla suite di emulatori per testare la loro integrazione con la tua app.

Distribuire una configurazione di estensioni a un progetto

Dopo aver aggiunto alcune istanze di estensione al manifest dell'estensione, puoi distribuirlo a un progetto utilizzando l'interfaccia a riga di comando di Firebase. Quando esegui la distribuzione con un manifest delle estensioni, installi, aggiorni e configuri tutte le istanze di estensione nel manifest in un progetto contemporaneamente.

Per distribuire un manifest delle estensioni:

  1. Da un prompt della shell, passare alla directory che contiene la configurazione delle estensioni salvate. (Questa è la directory che contiene firebase.json . Se hai appena eseguito ext:export , sei già nella directory giusta.)
  2. Esegui il comando di deploy . Se vuoi distribuire le estensioni a un progetto diverso da quello corrente, specifica anche --project= :
    firebase deploy --only extensions –-project=YOUR_PROJECT_ID

Il comando deploy convaliderà la configurazione di ogni istanza, chiederà se desideri eliminare eventuali istanze di estensione dal progetto di destinazione che non sono elencate in firebase.json e quindi distribuirà tutte le istanze di estensione.

Configurazioni di estensione specifiche del progetto

Le configurazioni delle estensioni salvate possono essere utilizzate per la distribuzione in più progetti diversi: ad esempio, un progetto di gestione temporanea e un progetto di produzione. Quando si esegue questa operazione, alcuni valori di parametro potrebbero dover essere diversi per ogni progetto. I file .env specifici del progetto rendono possibile:

  • Inserisci i valori dei parametri che differiscono tra i progetti nelle extensions/ EXTENSION_INSTANCE_ID .env. YOUR_PROJECT_ID
  • Inserisci i valori dei parametri condivisi nelle extensions/ EXTENSION_INSTANCE_ID .env .

A volte, potresti voler utilizzare un valore di parametro diverso durante l'emulazione delle tue estensioni: ad esempio, potresti voler fornire una chiave API di prova invece di una di produzione. Metti questi parametri in un file .local :

  • Inserisci i parametri non segreti che desideri utilizzare durante l'emulazione nelle extensions/ EXTENSION_INSTANCE_ID .env.local
  • Inserisci i valori dei parametri segreti nelle extensions/ EXTENSION_INSTANCE_ID .secret.local