Riferimento per l'interfaccia a riga di comando di Firebase

L'interfaccia a riga di comando Firebase (GitHub) fornisce una serie di strumenti per la gestione, la visualizzazione e il deployment nei progetti Firebase.

Prima di utilizzare l'interfaccia a riga di comando Firebase, configura un progetto Firebase.

Configura o aggiorna l'interfaccia a riga di comando

Installa l'interfaccia a riga di comando Firebase

Puoi installare l'interfaccia a riga di comando Firebase utilizzando un metodo che corrisponde al tuo sistema operativo, al tuo livello di esperienza e/o al tuo caso d'uso. Indipendentemente da come installi l'interfaccia a riga di comando, hai accesso alle stesse funzionalità e al comando firebase.

Windows macOS Linux

Windows

Puoi installare l'interfaccia a riga di comando Firebase per Windows utilizzando una delle seguenti opzioni:

Opzione Descrizione Consigliato per…
binario autonomo Scarica il file binario autonomo per l'interfaccia a riga di comando. Poi, puoi accedere all'eseguibile per aprire una shell in cui puoi eseguire il comando firebase. Nuovi sviluppatori

Sviluppatori che non utilizzano o non hanno familiarità con Node.js
npm Utilizza npm (Node Package Manager) per installare l'interfaccia a riga di comando e abilitare il comando firebase disponibile a livello globale. Sviluppatori che utilizzano Node.js

binario autonomo

Per scaricare ed eseguire il file binario per l'interfaccia a riga di comando Firebase, segui questi passaggi:

  1. Scarica il file binario dell'interfaccia a riga di comando Firebase per Windows.

  2. Accedi al file binario per aprire una shell in cui puoi eseguire il comando firebase.

  3. Vai a Accedi ed esegui il test della CLI.

npm

Per utilizzare npm (Node Package Manager) per installare l'interfaccia a riga di comando Firebase, segui questi passaggi:

  1. Installa Node.js utilizzando nvm-windows (Manager versione Node). L'installazione di Node.js installa automaticamente gli strumenti di comando npm.

  2. Installa l'interfaccia a riga di comando Firebase tramite npm eseguendo il seguente comando:

    npm install -g firebase-tools

    Questo comando attiva il comando firebase disponibile a livello globale.

  3. Continua a connetterti e a testare l'interfaccia a riga di comando.

macOS o Linux

Puoi installare l'interfaccia a riga di comando Firebase per macOS o Linux utilizzando una delle seguenti opzioni:

Opzione Descrizione Consigliato per…
script di installazione automatica Esegui un singolo comando che rileva automaticamente il tuo sistema operativo, scarica l'ultima versione della CLI e abilita il comando firebase disponibile a livello globale. Nuovi sviluppatori

Sviluppatori che non utilizzano o non hanno familiarità con Node.js

Deployment automatici in un ambiente CI/CD
binario autonomo Scarica il file binario autonomo per l'interfaccia a riga di comando. Poi, puoi configurare ed eseguire il programma binario in base al tuo workflow. Workflow completamente personalizzabili tramite l'interfaccia a riga di comando
npm Utilizza npm (Node Package Manager) per installare l'interfaccia a riga di comando e abilitare il comando firebase disponibile a livello globale. Sviluppatori che utilizzano Node.js

script di installazione automatica

Per installare l'interfaccia a riga di comando Firebase utilizzando lo script di installazione automatica, segui questi passaggi:

  1. Esegui questo comando cURL:

    curl -sL https://firebase.tools | bash

    Questo script rileva automaticamente il tuo sistema operativo, scarica l'ultima release della CLI Firebase e attiva il comando firebase disponibile a livello globale.

  2. Continua a connetterti e a testare l'interfaccia a riga di comando.

Per ulteriori esempi e dettagli sullo script di installazione automatica, consulta il codice sorgente dello script all'indirizzo firebase.tools.

binario autonomo

Per scaricare ed eseguire il file binario per l'interfaccia a riga di comando Firebase specifico per il tuo sistema operativo, segui questi passaggi:

  1. Scarica il file binario dell'interfaccia a riga di comando Firebase per il tuo sistema operativo: macOS | Linux

  2. (Facoltativo) Configura il comando firebase disponibile a livello globale.

    1. Rendi eseguibile il file binario eseguendo chmod +x ./firebase_tools.
    2. Aggiungi il percorso del file binario al tuo PATH.
  3. Continua a connetterti e a testare l'interfaccia a riga di comando.

npm

Per utilizzare npm (Node Package Manager) per installare l'interfaccia a riga di comando Firebase, segui questi passaggi:

  1. Installa Node.js utilizzando nvm (Node Manager versione).
    L'installazione di Node.js installa automaticamente gli strumenti a riga di comando npm.

  2. Installa l'interfaccia a riga di comando Firebase tramite npm eseguendo il seguente comando:

    npm install -g firebase-tools

    Questo comando attiva il comando firebase disponibile a livello globale.

  3. Continua a connetterti e a testare l'interfaccia a riga di comando.

Accedi e testa l'interfaccia a riga di comando Firebase

Dopo aver installato l'interfaccia a riga di comando, devi eseguire l'autenticazione. Poi puoi confermare l'autenticazione elencando i tuoi progetti Firebase.

  1. Accedi a Firebase utilizzando il tuo Account Google eseguendo questo comando:

    firebase login

    Questo comando connette la tua macchina locale a Firebase e ti concede l'accesso ai tuoi progetti Firebase.

  2. Verifica che l'interfaccia a riga di comando sia installata correttamente e che acceda al tuo account elencando i tuoi progetti Firebase. Esegui questo comando:

    firebase projects:list

    L'elenco visualizzato deve essere lo stesso dei progetti Firebase elencati nella console Firebase.

Esegui l'aggiornamento alla versione più recente dell'interfaccia a riga di comando

In genere, è consigliabile utilizzare la versione più aggiornata dell'interfaccia a riga di comando Firebase.

La modalità di aggiornamento della versione dell'interfaccia a riga di comando dipende dal sistema operativo e da come hai installato l'interfaccia a riga di comando.

Windows

macOS

  • Script di installazione automatica: esegui curl -sL https://firebase.tools | upgrade=true bash

  • Binario autonomo: scarica la nuova versione, quindi sostituiscila sul tuo sistema.

  • npm: esegui npm install -g firebase-tools

Linux

  • Script di installazione automatica: esegui curl -sL https://firebase.tools | upgrade=true bash

  • Binario autonomo: scarica la nuova versione, quindi sostituiscila sul tuo sistema.

  • npm: esegui npm install -g firebase-tools

Disinstalla l'interfaccia a riga di comando Firebase

La modalità di disinstallazione dell'interfaccia a riga di comando dipende dal sistema operativo e dalla modalità di installazione dell'interfaccia a riga di comando.

Windows

  • Binario autonomo: elimina il binario firebase.exe che hai scaricato.
  • npm: esegui npm uninstall -g firebase-tools

macOS

  • Script di installazione automatica: esegui curl -sL https://firebase.tools | uninstall=true bash

  • Binario autonomo: elimina il binario firebase che hai scaricato. Se hai aggiunto la sua posizione alla variabile di ambiente PATH, assicurati di rimuoverla.

  • npm: esegui npm uninstall -g firebase-tools

Linux

  • Script di installazione automatica: esegui curl -sL https://firebase.tools | uninstall=true bash

  • Binario autonomo: elimina il binario firebase che hai scaricato. Se hai aggiunto la sua posizione alla variabile di ambiente PATH, assicurati di rimuoverla.

  • npm: esegui npm uninstall -g firebase-tools

Utilizza l'interfaccia a riga di comando con i sistemi CI

Ti consigliamo di autenticarti utilizzando le Credenziali predefinite dell'applicazione quando utilizzi l'interfaccia a riga di comando con i sistemi CI.

(Consigliato) Utilizza le Credenziali predefinite dell'applicazione

La CLI Firebase rileverà e utilizzerà le Credenziali predefinite dell'applicazione, se impostate. Il modo più semplice per autenticare l'interfaccia a riga di comando in CI e in altri ambienti headless è configurare le credenziali predefinite dell'applicazione.

(Legacy) Utilizza FIREBASE_TOKEN

In alternativa, puoi eseguire l'autenticazione utilizzando FIREBASE_TOKEN. Questo metodo è meno sicuro delle Credenziali predefinite dell'applicazione e non è più consigliato.

  1. Su una macchina con un browser, installa l'interfaccia a riga di comando Firebase.

  2. Avvia la procedura di accesso eseguendo questo comando:

    firebase login:ci
  3. Visita l'URL fornito, quindi accedi utilizzando un Account Google.

  4. Stampa un nuovo token di aggiornamento. La sessione attuale dell'interfaccia a riga di comando non sarà interessata.

  5. Archivia il token di output in modo sicuro, ma accessibile, nel tuo sistema CI.

  6. Utilizza questo token quando esegui i comandi firebase. Puoi utilizzare una delle seguenti due opzioni:

    • Opzione 1: archivia il token come variabile di ambiente FIREBASE_TOKEN. Il tuo sistema utilizzerà automaticamente il token.

    • Opzione 2: esegui tutti i comandi firebase con il flag --token TOKEN nel tuo sistema CI.
      Questo è l'ordine di precedenza per il caricamento dei token: flag, variabile di ambiente, progetto Firebase desiderato.

Inizializza un progetto Firebase

Molte attività comuni eseguite utilizzando l'interfaccia a riga di comando, come il deployment in un progetto Firebase, richiedono una directory di progetto. Crea una directory di progetto utilizzando il comando firebase init. Una directory di progetto è in genere la stessa directory della radice del controllo del codice sorgente e, dopo l'esecuzione di firebase init, contiene un file di configurazione firebase.json.

Per inizializzare un nuovo progetto Firebase, esegui questo comando dalla directory dell'app:

firebase init

Il comando firebase init ti guida nella configurazione della directory del progetto e di alcuni prodotti Firebase. Durante l'inizializzazione del progetto, l'interfaccia a riga di comando Firebase ti chiede di completare le seguenti attività:

  • Seleziona un progetto Firebase predefinito.

    Questo passaggio associa la directory del progetto corrente a un progetto Firebase in modo che i comandi specifici del progetto (come firebase deploy) vengano eseguiti nel progetto Firebase appropriato.

    È anche possibile associare più progetti Firebase (ad esempio un progetto di gestione temporanea e un progetto di produzione) alla stessa directory di progetto.

  • Seleziona i prodotti Firebase da configurare nel tuo progetto Firebase.

    Questo passaggio ti chiede di impostare le configurazioni per file specifici per i prodotti o le funzionalità selezionati. Per maggiori dettagli su queste configurazioni, consulta la documentazione del prodotto specifico (ad esempio, Hosting o Authentication). Tieni presente che puoi sempre eseguire firebase init in un secondo momento per configurare altri prodotti Firebase.

Al termine dell'inizializzazione, Firebase crea automaticamente i seguenti due file nella directory principale dell'app locale:

  • Un file di configurazione firebase.json che elenca la configurazione del progetto.

  • Un file .firebaserc che memorizza gli alias del progetto.

Il file firebase.json

Il comando firebase init crea un file di configurazione firebase.json nella directory root del progetto.

Il file firebase.json è necessario per eseguire il deployment degli asset con l'interfaccia a riga di comando Firebase perché specifica quali file e impostazioni della directory del progetto vengono distribuiti nel progetto Firebase (come le impostazioni di Hosting, le configurazioni del provider Authentication, le regole di sicurezza e la configurazione di Cloud Functions). Poiché alcune impostazioni possono essere definite nella directory del progetto o nella console Firebase, assicurati di risolvere eventuali potenziali conflitti di deployment.

Puoi configurare la maggior parte delle opzioni di Firebase Hosting direttamente nel file firebase.json. Tuttavia, per altri servizi Firebase di cui è possibile eseguire il deployment con l'interfaccia a riga di comando Firebase, il comando firebase init crea file specifici in cui puoi definire le impostazioni per questi servizi, ad esempio un file index.js per Cloud Functions. Puoi anche configurare hook di pre-deployment o post-deployment nel file firebase.json.

Il seguente file firebase.json è un esempio completo che mostra le opzioni di configurazione per molti servizi Firebase. Inoltre, mostra funzionalità come il codebase multiplo Cloud Functions, la configurazione di Local Emulator Suite e un modello Remote Config. Tieni presente che un file firebase.json per un determinato progetto conterrà solo le configurazioni per i servizi Firebase configurati per quel progetto specifico (ad esempio, solo Firebase Hosting e Cloud Functions). L'aggiunta della chiave $schema abilita la convalida e il completamento automatico in molti editor di codice.

    {
      "$schema": "https://raw.githubusercontent.com/firebase/firebase-tools/master/schema/firebase-config.json",
      "hosting": {
        "public": "public",
        "ignore": [
          "firebase.json",
          "**/.*",
          "**/node_modules/**"
        ],
        "cleanUrls": true,
        "trailingSlash": false
      },
      "apphosting": {
        "backendId": "my-app",
        "rootDir": "backend",
        "ignore": [
          "firebase.json",
          "**/.*",
          "**/node_modules/**"
        ]
      },
      "firestore": {
        "rules": "firestore.rules",
        "indexes": "firestore.indexes.json"
      },
      "storage": {
        "rules": "storage.rules"
      },
      "database": {
        "rules": "database.rules.json"
      },
      "dataconnect": {
        "source": "dataconnect",
        "location": "us-central1"
      },
      "functions": [
        {
          "source": "functions",
          "codebase": "default",
          "ignore": [
            "**/.*",
            "**/node_modules/**"
          ],
          "predeploy": [
            "npm --prefix \"$RESOURCE_DIR\" run lint",
            "npm --prefix \"$RESOURCE_DIR\" run build"
          ]
        }
      ],
      "emulators": {
        "auth": {
          "port": 9099
        },
        "functions": {
          "port": 5001
        },
        "firestore": {
          "port": 8080
        },
        "hosting": {
          "port": 5000
        },
        "storage": {
          "port": 9199
        },
        "ui": {
          "enabled": true,
          "port": 4000
        },
        "singleProjectMode": true
      },
      "extensions": {
        "my-storage-resizer": "firebase/storage-resize-images@^0.1.0"
      },
      "auth": {
        "providers": {
          "anonymous": true,
          "emailPassword": true,
          "googleSignIn": {
            "oAuthBrandDisplayName": "My App",
            "supportEmail": "support@myapp.com"
          }
        }
      },
      "remoteconfig": {
        "template": "remoteconfig.template.json"
      }
    }

Sebbene firebase.json venga utilizzato per impostazione predefinita, puoi passare il flag --config PATH per specificare un file di configurazione alternativo.

Configurazione per più database Cloud Firestore

Quando esegui firebase init, il file firebase.json conterrà una singola chiave firestore corrispondente al database predefinito del progetto, come mostrato nell'esempio precedente.

Se il progetto contiene più database Cloud Firestore, modifica il file firebase.json per associare file di origine diversi per Cloud Firestore Security Rules e indice del database a ciascun database. Modifica il file con un array JSON, con una voce per ogni database.

      "firestore": [
        {
          "database": "(default)",
          "rules": "firestore.default.rules",
          "indexes": "firestore.default.indexes.json"
        },
        {
          "database": "ecommerce",
          "rules": "firestore.ecommerce.rules",
          "indexes": "firestore.ecommerce.indexes.json"
        }
      ],

Cloud Functions file da ignorare durante il deployment

Al momento del deployment della funzione, l'interfaccia a riga di comando specifica automaticamente un elenco di file nella directory functions da ignorare. In questo modo, eviti di eseguire il deployment nel backend di file estranei che potrebbero aumentare le dimensioni dei dati del deployment.

L'elenco dei file ignorati per impostazione predefinita, mostrato in formato JSON, è:

"ignore": [
  ".git",
  ".runtimeconfig.json",
  "firebase-debug.log",
  "firebase-debug.*.log",
  "node_modules"
]

Se aggiungi i tuoi valori personalizzati per ignore in firebase.json, assicurati di mantenere (o aggiungere, se manca) l'elenco di file mostrato nell'elenco precedente.

Gestisci gli alias del progetto

Puoi associare più progetti Firebase alla stessa directory di progetto. Ad esempio, potresti voler utilizzare un progetto Firebase per la gestione temporanea e un altro per la produzione. Utilizzando ambienti di progetto diversi, puoi verificare le modifiche prima di eseguirne il deployment in produzione. Il comando firebase use ti consente di passare da un alias all'altro e di crearne di nuovi.

Aggiungi un alias del progetto

Quando selezioni un progetto Firebase durante l'inizializzazione del progetto, al progetto viene assegnato automaticamente l'alias default. Tuttavia, per consentire l'esecuzione di comandi specifici del progetto su un progetto Firebase diverso, ma utilizzando comunque la stessa directory del progetto, esegui questo comando dalla directory del progetto:

firebase use --add

Questo comando ti chiede di selezionare un altro progetto Firebase e di assegnarlo come alias. Le assegnazioni degli alias vengono scritte in un file .firebaserc all'interno della directory del progetto.

Utilizza gli alias di progetto

Per utilizzare gli alias dei progetti Firebase assegnati, esegui uno dei seguenti comandi dalla directory del progetto.

Comando Descrizione
firebase use Visualizza un elenco di alias definiti per la directory del progetto
firebase use \
PROJECT_ID|ALIAS
Indirizza tutti i comandi da eseguire sul progetto Firebase specificato.
La CLI utilizza questo progetto come "progetto attivo".
firebase use --clear Cancella il progetto attivo.

Esegui firebase use PROJECT_ID|ALIAS per impostare un nuovo progetto attivo prima di eseguire altri comandi dell'interfaccia a riga di comando.

firebase use \
--unalias PROJECT_ALIAS
Rimuove un alias dalla directory del progetto.

Puoi eseguire l'override del progetto attivo passando il flag --project con qualsiasi comando dell'interfaccia a riga di comando. Ad esempio, puoi impostare l'interfaccia a riga di comando in modo che venga eseguita su un progetto Firebase a cui hai assegnato l'alias staging. Se vuoi eseguire un singolo comando sul progetto Firebase a cui hai assegnato l'alias prod, puoi eseguire, ad esempio, firebase deploy --project=prod.

Controllo del codice sorgente e alias dei progetti

In generale, devi archiviare il file .firebaserc nel controllo del codice sorgente per consentire al tuo team di condividere gli alias del progetto. Tuttavia, per i progetti open source o i modelli di base, in genere non è consigliabile eseguire il check-in del file .firebaserc.

Se hai un progetto di sviluppo solo per uso personale, puoi passare il flag --project con ogni comando o eseguire firebase use PROJECT_ID senza assegnare un alias al progetto Firebase.

Pubblica e testa il tuo progetto Firebase localmente

Puoi visualizzare e testare il tuo progetto Firebase su URL ospitati localmente prima di eseguirne il deployment in produzione. Se vuoi testare solo alcune funzionalità, puoi utilizzare un elenco separato da virgole in un flag del comando firebase serve.

Esegui questo comando dalla directory principale del progetto locale se vuoi eseguire una delle seguenti attività:

  • Visualizza i contenuti statici della tua app ospitata su Firebase.
  • Utilizzi Cloud Functions per generare contenuti dinamici per Firebase Hosting e vuoi utilizzare le tue funzioni HTTP di produzione (di cui è stato eseguito il deployment) per emulare Hosting su un URL locale.
firebase serve --only hosting

Emula il tuo progetto utilizzando funzioni HTTP locali

Esegui uno dei seguenti comandi dalla directory del progetto per emulare il progetto utilizzando funzioni HTTP locali.

  • Per emulare le funzioni HTTP e l'hosting per i test su URL locali, utilizza uno dei seguenti comandi:

    firebase serve
    firebase serve --only functions,hosting // uses a flag
  • Per emulare solo le funzioni HTTP, utilizza il seguente comando:

    firebase serve --only functions

Esegui test da altri dispositivi locali

Per impostazione predefinita, firebase serve risponde solo alle richieste di localhost. Ciò significa che potrai accedere ai tuoi contenuti in hosting dal browser web del tuo computer, ma non da altri dispositivi della tua rete. Se vuoi eseguire il test da altri dispositivi locali, utilizza il flag --host, in questo modo:

firebase serve --host 0.0.0.0  // accepts requests to any host

Esegui il deployment in un progetto Firebase

L'interfaccia a riga di comando Firebase gestisce il deployment di codice e asset nel tuo progetto Firebase, tra cui:

  • Nuove uscite dei tuoi siti Firebase Hosting
  • Cloud Functions for Firebase nuovo, aggiornato o esistente
  • Schemi e connettori nuovi o aggiornati per Firebase SQL Connect
  • Security Rules per Firebase Realtime Database
  • Security Rules per Cloud Storage for Firebase
  • Security Rules per Cloud Firestore
  • Indici per Cloud Firestore
  • Configurazione per Authentication

Per eseguire il deployment in un progetto Firebase, esegui questo comando dalla directory del progetto:

firebase deploy

Se vuoi, puoi aggiungere un commento a ogni deployment. Questo commento verrà visualizzato con le altre informazioni sul deployment nella pagina Firebase Hosting del progetto. Ad esempio:

firebase deploy -m "Deploying the best new feature ever."

Quando utilizzi il comando firebase deploy, tieni presente quanto segue:

  • Per eseguire il deployment delle risorse da una directory di progetto, la directory di progetto deve contenere un file firebase.json. Questo file viene creato automaticamente dal comando firebase init.

  • Per impostazione predefinita, firebase deploy crea una release per tutte le risorse di cui è possibile eseguire il deployment nella directory del progetto. Per eseguire il deployment di servizi o funzionalità Firebase specifici, utilizza il deployment parziale.

Esegui il deployment di servizi Firebase specifici

Se vuoi eseguire il deployment solo di servizi o funzionalità Firebase specifici, puoi utilizzare un elenco separato da virgole in un flag del comando firebase deploy. Ad esempio, il comando seguente esegue il deployment dei contenuti Firebase Hosting e Cloud Storage Security Rules.

firebase deploy --only hosting,storage

La tabella seguente elenca i servizi e le funzionalità disponibili per il deployment parziale. I nomi nei flag corrispondono alle chiavi nel file di configurazione firebase.json.

Sintassi dei flag Servizio o funzionalità di cui è stato eseguito il deployment
--only auth Configurazione del provider Authentication
--only database Firebase Realtime Database Security Rules
--only dataconnect Schemi e connettori Firebase SQL Connect
--only firestore Indici Cloud Firestore, Security Rules e per tutti i database configurati
--only functions Cloud Functions for Firebase
--only hosting Contenuti in Firebase Hosting
--only storage Cloud Storage for Firebase Security Rules

Conflitti di deployment per Security Rules

Per Firebase Realtime Database, Cloud Storage for Firebase e Cloud Firestore, puoi definire Security Rules nella directory del progetto locale o nella consoleFirebase.

Un'altra opzione per evitare conflitti di deployment è utilizzare il deployment parziale e definire solo Security Rules nella console Firebase.

Configura attività con script pre-deployment e post-deployment

Puoi collegare gli script shell al comando firebase deploy per eseguire attività di pre-deployment o post-deployment. Ad esempio, uno script di pre-deployment potrebbe transcompilare il codice TypeScript in JavaScript e un hook di post-deployment potrebbe inviare agli amministratori una notifica dei deployment di nuovi contenuti del sito nella nuova versione di Sites in Firebase Hosting.

Per configurare gli hook di pre-deployment o post-deployment, aggiungi script bash al file di configurazione firebase.json. Puoi definire brevi script direttamente nel file firebase.json o fare riferimento ad altri file presenti nella directory del progetto.

Ad esempio, il seguente script è l'espressione firebase.json per un'attività post-deployment che invia un messaggio Slack in caso di deployment riuscito in Firebase Hosting.

"hosting": {
  // ...

  "postdeploy": "./messageSlack.sh 'Just deployed to Firebase Hosting'",
  "public": "public"
}

Il file di script messageSlack.sh si trova nella directory del progetto e ha il seguente aspetto:

curl -X POST -H 'Content-type: application/json' --data '{"text":"$1"}'
     \https://SLACK_WEBHOOK_URL

Puoi configurare gli hook predeploy e postdeploy per qualsiasi asset di cui puoi eseguire il deployment. Tieni presente che l'esecuzione di firebase deploy attiva tutte le attività pre-deployment e post-deployment definite nel file firebase.json. Per eseguire solo le attività associate a un servizio Firebase specifico, utilizza i comandi di deployment parziale.

Sia gli hook predeploy che postdeploy stampano i flussi di output standard e di errore degli script sul terminale. Per i casi di errore, tieni presente quanto segue:

  • Se un hook di pre-deployment non viene completato come previsto, il deployment viene annullato.
  • Se il deployment non va a buon fine per qualsiasi motivo, gli hook post-deployment non vengono attivati.

Variabili di ambiente

Negli script eseguiti negli hook pre-deployment e post-deployment, sono disponibili le seguenti variabili di ambiente:

  • $GCLOUD_PROJECT: l'ID progetto del progetto attivo
  • $PROJECT_DIR: la directory root contenente il file firebase.json
  • $RESOURCE_DIR: (Perhosting Efunctions (solo script) La posizione della directory che contiene ilHosting OCloud Functions risorse da impiegare

Quote di deployment

È possibile (anche se improbabile) che tu superi una quota che limita la frequenza o il volume delle operazioni di deployment di Firebase. Ad esempio, quando esegui il deployment di un numero molto elevato di funzioni, potresti ricevere un messaggio di errore HTTP 429 Quota. Per risolvere questi problemi, prova a utilizzare il deployment parziale.

Esegui il rollback di un deployment

Puoi eseguire il rollback di un deployment Firebase Hosting dalla pagina Firebase Hosting del tuo progetto selezionando l'azione Rollback per la release scelta.

Non è possibile eseguire il rollback delle release di Security Rules per Firebase Realtime Database, Cloud Storage for Firebase o Cloud Firestore.

Riferimento ai comandi

Questa sezione descrive i comandi disponibili per i seguenti casi d'uso e prodotti:

Comandi amministrativi dell'interfaccia a riga di comando

Comando Descrizione
help Visualizza le informazioni della guida sull'interfaccia a riga di comando o su comandi specifici.
init Associa e configura un nuovo progetto Firebase nella directory corrente.
Questo comando crea un file di configurazione firebase.json nella directory corrente.
login

Autentica l'interfaccia a riga di comando con il tuo Account Google. Richiede l'accesso a un browser web.

Per accedere alla CLI in ambienti remoti che non consentono l'accesso a localhost, utilizza il flag --no-localhost.

login:ci Deprecato. Utilizza invece le Credenziali predefinite dell'applicazione con un service account Google Cloud (GOOGLE_APPLICATION_CREDENTIALS).
Genera un token di autenticazione da utilizzare in ambienti non interattivi.
login:add Accedi a un altro Account Google.
login:list Elenca tutti gli Account Google autenticati.
login:use \
EMAIL_ADDRESS
Imposta l'Account Google attivo.
logout Esci dal tuo Account Google dalla CLI.
open Apri un browser per accedere alle risorse pertinenti del progetto.
projects:list Elenca tutti i progetti Firebase a cui hai accesso.
use

Imposta il progetto Firebase attivo per l'interfaccia a riga di comando.

Scopri di più sulla gestione degli alias di progetto.

Comandi per la gestione dei progetti

Comando Descrizione
Gestione dei progetti Firebase
projects:addfirebase Aggiungi configurazioni specifiche di Firebase e attiva servizi specifici di Firebase in un progetto Google Cloud esistente.
projects:create Crea un nuovo progetto Google Cloud, quindi aggiungi configurazioni specifiche di Firebase e abilita i servizi specifici di Firebase nel nuovo progetto.
projects:list Elenca tutti i progetti Firebase a cui hai accesso.
Gestione delle app Firebase (iOS, Android, web)
apps:create Crea una nuova app Firebase.
apps:list Elenca tutte le app Firebase registrate nel progetto Firebase attivo.
apps:sdkconfig \
[PLATFORM] \
[FIREBASE_APP_ID]

Stampa la configurazione Firebase dell'app Firebase specificata.

  • PLATFORM può essere IOS, ANDROID o WEB (senza distinzione tra maiuscole e minuscole). Se omesso, l'interfaccia a riga di comando ti chiede di selezionare un'app da un elenco visualizzato di tutte le app Firebase nel progetto Firebase attivo. Se il progetto Firebase attivo ha una sola app Firebase, l'interfaccia a riga di comando seleziona automaticamente l'app.
  • FIREBASE_APP_ID è l'ID app dell'app Firebase (richiede che PLATFORM sia specificato per primo). Se omesso, l'interfaccia a riga di comando seleziona automaticamente l'app se ne corrisponde solo una o ti chiede di selezionare un'app se ne corrispondono più di una.

Se l'interfaccia a riga di comando è in esecuzione in modalità non interattiva:

  • Se il progetto Firebase attivo ha una sola app Firebase, puoi omettere sia PLATFORM sia FIREBASE_APP_ID.
  • Se il progetto Firebase attivo ha più app Firebase, devi specificare PLATFORM (e FIREBASE_APP_ID se il progetto ha più di un'app Firebase di quel tipo di piattaforma).

Questo comando supporta il seguente flag facoltativo:

  • -o o --out [FILENAME]
    Scrive l'output della configurazione in un file anziché stamparlo nell'output standard. Se FILENAME viene omesso, il valore predefinito è un nome file specifico della piattaforma (GoogleService-Info.plist per iOS, google-services.json per Android o firebase-js-config.json per il web). Se il file di destinazione esiste già, l'interfaccia a riga di comando ti chiede di confermare la sovrascrittura (oppure l'operazione non va a buon fine in modalità non interattiva).
Gestione degli hash dei certificati SHA (solo Android)
apps:android:sha:create \
FIREBASE_ANDROID_APP_ID \
SHA_HASH
Aggiungi l'hash del certificato SHA specificato all'app per Android Firebase specificata.
apps:android:sha:delete \
FIREBASE_ANDROID_APP_ID \
SHA_ID
Elimina il certificato SHA specificato (identificato da SHA_ID da apps:android:sha:list) dall'app per Android Firebase specificata.
apps:android:sha:list \
FIREBASE_ANDROID_APP_ID
Elenca tutti gli hash dei certificati SHA per l'app per Android Firebase specificata.

Deployment e sviluppo locale

Questi comandi ti consentono di eseguire il deployment del tuo progetto Firebase e di interagire con quest'ultimo.

Comando Descrizione
deploy

Esegui il deployment di codice e asset dalla directory del progetto al progetto Firebase attivo.

Questo comando richiede un file di configurazione firebase.json nella directory del progetto.

Scopri di più sul deployment in un progetto Firebase.

serve

Avvia un server locale per testare la configurazione di Firebase Hosting e/o l'HTTP locale Cloud Functions (ad esempio utilizzando --only hosting o --only functions).

Questo comando richiede un file di configurazione firebase.json nella directory del progetto.

Scopri di più sulla pubblicazione e sui test in locale.

Comandi App Distribution

Comando Descrizione
appdistribution:distribute \
RELEASE_BINARY_FILE \
--app FIREBASE_APP_ID
Carica il file binario della release specificato (.apk, .aab o .ipa) e rendilo disponibile ai tester per l'app Firebase specificata.
appdistribution:testers:add \
[EMAILS...]

Aggiungi uno o più tester (specificati come EMAILS separati da spazi) al progetto Firebase attivo. Se EMAILS viene omesso, devi passare --file FILE.

Questo comando aggiunge solo i tester che non sono già presenti nel progetto; non rimuove né sovrascrive i tester esistenti.

Questo comando supporta i seguenti flag facoltativi:

  • --file FILE
    Specifica un percorso per un file non vuoto, separato da virgole o da un ritorno a capo, contenente gli indirizzi email dei tester da aggiungere. Se vengono passati sia EMAILS sia --file, EMAILS ha la precedenza.
  • --group-alias GROUP_ALIAS
    Aggiungi anche i tester specificati al gruppo di tester identificato da GROUP_ALIAS.
appdistribution:testers:remove \
[EMAILS...]

Rimuovi i tester (specificati come EMAILS separati da spazi) dal progetto Firebase attivo. Se EMAILS viene omesso, devi passare --file FILE.

Questo comando supporta i seguenti flag facoltativi:

  • --file FILE
    Specifica un percorso per un file separato da virgole o da nuove righe contenente gli indirizzi email dei tester da rimuovere. Se vengono passati sia EMAILS sia --file, EMAILS ha la precedenza.
  • --group-alias GROUP_ALIAS
    Rimuovi i tester specificati solo dal gruppo di tester identificato da GROUP_ALIAS, anziché rimuoverli dal progetto Firebase attivo.
appdistribution:testers:list Elenca i tester nel progetto Firebase attivo.
appdistribution:groups:create \
DISPLAY_NAME \
[GROUP_ALIAS]
Crea un gruppo di tester con il DISPLAY_NAME specificato e GROUP_ALIAS facoltativo.
Se GROUP_ALIAS viene omesso, viene generato automaticamente un alias da DISPLAY_NAME.
appdistribution:groups:delete \
GROUP_ALIAS
Elimina il gruppo di tester con l'alias specificato.
appdistribution:groups:list Elenca tutti i gruppi di tester nel progetto Firebase attivo.

Comandi App Hosting

Comando Descrizione
apphosting:backends:create \
--backend BACKEND_ID \
--primary-region REGION_NAME \
--app FIREBASE_WEB_APP_ID

Crea la raccolta di risorse gestite collegate a un singolo codebase che comprende un backend App Hosting.

Questo comando supporta i seguenti flag facoltativi (ma consigliati):

  • --backend BACKEND_ID
    Specifica l'ID per il nuovo backend App Hosting. Se omesso in modalità interattiva, l'interfaccia a riga di comando ti chiede di inserire un ID backend.
  • --primary-region REGION_NAME
    Specifica la regione principale in cui creare il backend App Hosting. Se omesso in modalità interattiva, l'interfaccia a riga di comando ti chiede di selezionare una località. Scopri di più sulle località supportate per App Hosting.
  • -a o --app FIREBASE_WEB_APP_ID
    Specifica l'ID app di un'app web Firebase esistente. Se omesso, l'interfaccia a riga di comando crea e associa automaticamente una nuova app web Firebase denominata BACKEND_ID (a meno che il progetto non abbia raggiunto la quota di app Firebase).

Questo comando supporta anche i seguenti flag facoltativi:

  • --root-dir ROOT_DIR
    Specifica la directory root della tua app in relazione al tuo repository. Se omesso in modalità interattiva, l'interfaccia a riga di comando ti chiede di specificare la directory (il valore predefinito è /).
  • -s o --service-account SERVICE_ACCOUNT
    Specifica l'account di servizio utilizzato per eseguire il server. Se omesso, viene utilizzato il service account Compute App Hosting predefinito.

Se l'interfaccia a riga di comando è in esecuzione in modalità non interattiva, sono obbligatori sia --backend sia --primary-region.

apphosting:backends:get \
BACKEND_ID

Recupera i dettagli, incluso l'URL pubblico, del backend App Hosting specificato.

Se più regioni contengono un backend con il BACKEND_ID specificato, l'interfaccia a riga di comando registra un avviso e stampa il primo backend corrispondente (tieni presente che questo comando non supporta il flag --location).

apphosting:backends:list Elenca tutti i backend App Hosting attivi nel progetto Firebase attivo.
apphosting:backends:delete \
BACKEND_ID

Elimina il backend App Hosting specificato.

La CLI visualizza un messaggio di conferma prima di eseguire l'azione. Per saltare il prompt di conferma (obbligatorio in modalità non interattiva), passa i seguenti flag: -f o --force.

Se più regioni contengono un backend con il BACKEND_ID specificato, l'interfaccia a riga di comando ti chiede in modalità interattiva di selezionare i backend da eliminare e non va a buon fine se viene passato -f o --force (tieni presente che questo comando non supporta il flag --location).

apphosting:rollouts:create \
BACKEND_ID

Crea un'implementazione attivata manualmente per il backend App Hosting specificato.

Questo comando supporta i seguenti flag facoltativi che si escludono a vicenda. Se non viene fornito nessuno dei due, l'interfaccia a riga di comando ti chiede di selezionare un branch da un elenco. In modalità non interattiva, è necessario fornire uno di questi flag.

  • -b o --git-branch BRANCH_NAME
    Esegui il deployment dell'ultimo commit sul branch Git specificato.
  • -g o --git-commit COMMIT_ID
    Esegui il deployment del commit Git specificato.

Se più regioni contengono un backend con il BACKEND_ID specificato, questo comando non va a buon fine sia in modalità interattiva che non interattiva (tieni presente che questo comando non supporta il flag --location).

apphosting:secrets:set \
SECRET_NAME \
--data-file DATA_FILE_PATH

Crea o aggiorna un segreto in Google Cloud Secret Manager con il SECRET_NAME specificato.

Questo comando supporta il seguente flag facoltativo (ma consigliato):

  • --data-file DATA_FILE_PATH
    Specifica un percorso da cui leggere i dati del secret o imposta - per leggere i dati del secret dall'input standard. Se omesso, l'interfaccia a riga di comando ti chiede di inserire il valore del secret (con input mascherato) o legge dall'input standard se l'input standard è collegato tramite pipe.

Questo comando supporta anche il seguente flag facoltativo:

  • -l o --location REGION_NAME
    Quando crei un nuovo secret, limita la replica alla regione Google Cloud Secret Manager specificata. Se omesso, Google Cloud Secret Manager utilizza la replica globale automatica. (Le policy di replica non possono essere modificate per i secret esistenti).

Se l'interfaccia a riga di comando è in esecuzione in modalità non interattiva, passa --data-file DATA_FILE_PATH (o invia il valore del secret all'input standard).

apphosting:secrets:grantaccess \
SECRET_NAME

Concedi le autorizzazioni per i secret specificati a un insieme di indirizzi email di utenti o gruppi o a un service account di un backend. I secret possono quindi essere accessibili da App Hosting in fase di build o di esecuzione.

Puoi passare uno o più valori SECRET_NAME, separati da una virgola. Devi specificare --emails o --backend (questi due flag si escludono a vicenda).

Concedi l'accesso a un insieme di indirizzi email di utenti o gruppi:

  • -e o --emails EMAILS
    Specifica un elenco separato da virgole di indirizzi email di utenti o gruppi a cui deve essere concesso l'accesso ai secret specificati.

Concedi l'accesso al service account di un backend:

  • -b o --backend BACKEND_ID
    Specifica il backend App Hosting al cui service account deve essere concesso l'accesso ai secret specificati.
  • -l o --location REGION_NAME
    Specifica la regione per il backend App Hosting. Se omesso, l'interfaccia a riga di comando cerca in tutte le regioni il BACKEND_ID corrispondente; se più regioni contengono un backend con quell'ID, l'interfaccia a riga di comando ti chiede di sceglierne uno in modalità interattiva (in modalità non interattiva, --location è obbligatorio).
apphosting:secrets:revokeaccess \
SECRET_NAME

Revoca le autorizzazioni per i secret specificati da un insieme di indirizzi email di utenti o gruppi o da un service account di un backend.

Puoi passare uno o più valori SECRET_NAME, separati da una virgola. Devi specificare --emails o --backend (questi due flag si escludono a vicenda).

Revoca l'accesso a un insieme di indirizzi email di utenti o gruppi:

  • -e o --emails EMAILS
    Specifica un elenco separato da virgole di indirizzi email di utenti o gruppi da cui revocare l'accesso ai secret specificati.

Revoca l'accesso dal service account di un backend:

  • -b o --backend BACKEND_ID
    Specifica il backend App Hosting il cui service account deve avere l'accesso revocato ai secret specificati.
  • -l o --location REGION_NAME
    Specifica la regione per il backend App Hosting. Se omesso, l'interfaccia a riga di comando cerca in tutte le regioni il BACKEND_ID corrispondente; se più regioni contengono un backend con quell'ID, l'interfaccia a riga di comando ti chiede di sceglierne uno in modalità interattiva (in modalità non interattiva, --location è obbligatorio).
apphosting:secrets:describe \
SECRET_NAME
Recupera i metadati e le versioni per il nome del secret specificato.
apphosting:secrets:access \
SECRET_NAME[@VERSION]
Accedi al valore del secret per il nome del secret specificato nella versione specificata.
Se [@VERSION] viene omesso, per impostazione predefinita viene eseguito l'accesso all'ultima versione.

Comandi Authentication (gestione degli utenti)

Comando Descrizione
auth:export \
DATA_FILE

Esporta gli account utente del progetto Firebase attivo in un file JSON o CSV.

Per maggiori dettagli, consulta la pagina "auth:import e auth:export".

auth:import \
DATA_FILE

Importa gli account utente da un file JSON o CSV nel progetto Firebase attivo.

Per maggiori dettagli, consulta la pagina "auth:import e auth:export".

Comandi Cloud Firestore

Comando Descrizione
firestore:locations

Elenca le località disponibili per le istanze di database Cloud Firestore nel progetto Firebase attivo.

Scopri le località disponibili per Standard Edition, Enterprise Edition e compatibilità con MongoDB.

firestore:databases:create \
DATABASE_ID \
--location REGION_NAME

Crea l'istanza di database Cloud Firestore specificata (in modalità Datastore) nella località specificata.
Esegui firebase firestore:locations per elencare le località disponibili per REGION_NAME.

Questo comando supporta i seguenti flag facoltativi:

  • --delete-protection DELETION_PROTECTION_STATE
    Consenti o impedisci l'eliminazione dell'istanza di database Cloud Firestore specificata. I valori validi sono ENABLED o DISABLED. Se omesso, il valore predefinito è DISABLED.
  • --point-in-time-recovery PITR_STATE
    Imposta se il recupero point-in-time è abilitato per l'istanza di database Cloud Firestore specificata. I valori validi sono ENABLED o DISABLED. Se omesso, il valore predefinito è DISABLED.
  • --edition EDITION
    Imposta la versione per l'istanza di database Cloud Firestore specificata.
    I valori validi sono standard o enterprise. Se omesso, il valore predefinito è standard.
  • --firestore-data-access ENABLEMENT_STATE
    (Solo versione Enterprise) Controlla la disponibilità dell'API Cloud Firestore. I valori validi sono ENABLED o DISABLED. Se omesso, il valore predefinito è ENABLED (tuttavia, quando --mongodb-compatible-data-access è ENABLED, il valore predefinito è DISABLED).
  • --mongodb-compatible-data-access ENABLEMENT_STATE
    (Solo versione Enterprise) Controlla la disponibilità dell'API compatibile con MongoDB. I valori validi sono ENABLED o DISABLED. Se omesso, il valore predefinito è DISABLED.
  • --realtime-updates ENABLEMENT_STATE
    (Solo versione Enterprise) Attiva o disattiva la funzionalità "Guarda" (in tempo reale). I valori validi sono ENABLED o DISABLED. Se omesso, il valore predefinito è ENABLED quando --firestore-data-access è ENABLED (altrimenti viene utilizzato il valore predefinito del server).
    L'impostazione di questo flag richiede che --firestore-data-access sia ENABLED.
firestore:databases:list

Elenca tutte le istanze di database Cloud Firestore nel progetto Firebase attivo.

firestore:databases:get \
[DATABASE_ID]

Recupera la configurazione del database per l'istanza di database Cloud Firestore specificata.
Se DATABASE_ID viene omesso, per impostazione predefinita viene utilizzata l'istanza di database Cloud Firestore predefinita del progetto Firebase attivo.

L'output della tabella include il valore Edition del database per tutti i database. I campi di stato dell'accesso ai dati aziendali e degli aggiornamenti in tempo reale sono inclusi nell'output JSON non elaborato solo quando viene passato --json.

firestore:databases:update \
DATABASE_ID

Aggiorna la configurazione del database dell'istanza di database Cloud Firestore specificata.

È richiesto almeno un flag (i flag omessi mantengono le impostazioni correnti). Questo comando supporta i seguenti flag:

  • --delete-protection DELETION_PROTECTION_STATE
    Consenti o impedisci l'eliminazione dell'istanza di database Cloud Firestore specificata. I valori validi sono ENABLED o DISABLED.
  • --point-in-time-recovery PITR_STATE
    Imposta se il recupero point-in-time è abilitato per l'istanza di database Cloud Firestore specificata. I valori validi sono ENABLED o DISABLED.
firestore:databases:delete \
DATABASE_ID

Elimina l'istanza di database Cloud Firestore specificata.

La CLI visualizza un messaggio di conferma prima di eseguire l'azione. Per saltare il prompt di conferma (obbligatorio in modalità non interattiva), passa il flag --force. (A differenza di altri comandi, firestore:databases:delete non supporta la sintassi abbreviata -f).

firestore:indexes

Elenca tutti gli indici per un'istanza di database Cloud Firestore.

Questo comando supporta il seguente flag facoltativo:

  • --database DATABASE_ID
    Specifica l'istanza di database Cloud Firestore per cui elencare gli indici. Se omesso, gli indici vengono elencati per l'istanza di database predefinita Cloud Firestore del progetto Firebase attivo.
firestore:delete \
[PATH]

Elimina i documenti nel percorso del database specificato (PATH) da un'istanza di database Cloud Firestore.

PATH è obbligatorio, a meno che non venga passato --all-collections. L'eliminazione di una raccolta o di un documento con raccolte secondarie non va a buon fine, a meno che non venga passato -r/--recursive o --shallow.

Tieni presente che l'eliminazione dei dati di Cloud Firestore tramite l'interfaccia a riga di comando comporta costi di lettura ed eliminazione. Per ulteriori informazioni, consulta Informazioni sulla fatturazione di Cloud Firestore.

Questo comando supporta i seguenti flag facoltativi:

  • --database DATABASE_ID
    Specifica il database Cloud Firestore da cui eliminare i documenti. Se omesso, i documenti vengono eliminati dall'istanza di database predefinita Cloud Firestore del progetto Firebase attivo.
  • --all-collections
    Elimina tutte le raccolte nel database. (Non passare PATH quando utilizzi questo flag.)
  • -r o --recursive
    Elimina in modo ricorsivo tutti i documenti e le sottoraccolte nel percorso specificato. (Non può essere trasmesso con --shallow.)
  • --shallow
    Elimina solo i documenti al livello specificato e ignora i documenti nelle sottoraccolte. Tieni presente che questa operazione può lasciare i documenti nidificati orfani. (Non può essere passato con -r o --recursive.)

La CLI visualizza un messaggio di conferma prima di eseguire l'azione. Per saltare il prompt di conferma (obbligatorio in modalità non interattiva), passa i seguenti flag: -f o --force.

Comandi Cloud Functions for Firebase

Per saperne di più, consulta la documentazione sulla configurazione dell'ambiente.

Comando Descrizione
functions:config:export

Esporta la configurazione di runtime functions.config() legacy del progetto Firebase attivo come un singolo secret JSON in Google Cloud Secret Manager (da utilizzare con defineJsonSecret).

Questo comando supporta i seguenti flag facoltativi:

  • --secret SECRET_NAME
    Specificare il nome del segreto da creare o aggiornare inGoogle Cloud Secret Manager. Se omesso, l'interfaccia a riga di comando ti chiede di inserire un nome (per impostazione predefinita, FUNCTIONS_CONFIG_EXPORT).
  • -f o --force
    Utilizza il nome del secret predefinito (FUNCTIONS_CONFIG_EXPORT) senza chiedere conferma e aggiungi una nuova versione del secret senza conferma se il secret esiste già. (Obbligatorio per aggiungere una nuova versione a un secret esistente in modalità non interattiva).
functions:delete \
FUNCTION_NAME...

Elimina una o più funzioni specificate dal progetto Firebase attivo.

La CLI visualizza un messaggio di conferma prima di eseguire l'azione. Per saltare il prompt di conferma (obbligatorio in modalità non interattiva), passa i seguenti flag: -f o --force.

functions:list Elenca tutte le funzioni di cui è stato eseguito il deployment nel progetto Firebase attivo.
functions:log Leggi i log di tutti i Cloud Functions di cui è stato eseguito il deployment nel progetto Firebase attivo.
functions:secrets:access \
SECRET_NAME[@VERSION]
Accedi al valore del secret per il nome del secret specificato nella versione specificata.
Se [@VERSION] viene omesso, per impostazione predefinita viene eseguito l'accesso all'ultima versione.
functions:secrets:destroy \
SECRET_NAME[@VERSION]

Elimina il secret specificato nella versione specificata.
Se [@VERSION] viene omesso, per impostazione predefinita viene eliminata l'ultima versione.

L'interfaccia a riga di comando visualizza un prompt di conferma prima di eseguire l'azione, che viene confermata automaticamente in modalità non interattiva senza -f o --force. Tuttavia, se il secret è ancora associato a endpoint di funzioni attivi, devi passare -f o --force per distruggerlo.

functions:secrets:get \
SECRET_NAME
Recupera i metadati e le versioni per il nome del secret specificato.
functions:secrets:prune Elimina tutti i secret inutilizzati nel progetto Firebase attivo.
functions:secrets:set \
SECRET_NAME
Crea o aggiorna il secret specificato.
functions:shell Avvia una shell interattiva locale per testare le funzioni.
functions:config:clone \
--from PROJECT_ID

Deprecato.
Clona l'ambiente di un altro progetto nel progetto Firebase attivo.

Disattivata per impostazione predefinita. Per utilizzare questo comando, esegui prima firebase experiments:enable legacyRuntimeConfigCommands.

functions:config:get Deprecato.
Recupera i valori di configurazione esistenti della Cloud Functions del progetto Firebase attivo.
functions:config:set \
KEY=VALUE...

Deprecato.
Archivia i valori di configurazione di runtime del Cloud Functions del progetto Firebase attivo.

Disattivata per impostazione predefinita. Per utilizzare questo comando, esegui prima firebase experiments:enable legacyRuntimeConfigCommands.

functions:config:unset \
KEY...

Deprecato.
Rimuovi i valori dalla configurazione di runtime del progetto Firebase attivo.

Disattivata per impostazione predefinita. Per utilizzare questo comando, esegui prima firebase experiments:enable legacyRuntimeConfigCommands.

Comandi Crashlytics

Comando Descrizione
crashlytics:mappingfile:generateid \
--resource-file PATH/TO/ANDROID_RESOURCE.XML
Genera un ID file di mappatura univoco nel file di risorse Android (XML) specificato.
crashlytics:mappingfile:upload \
--app FIREBASE_APP_ID \
--resource-file PATH/TO/ANDROID_RESOURCE.XML \
PATH/TO/MAPPING_FILE.TXT
Carica un file di mappatura (TXT) compatibile con Proguard per l'app Firebase specificata e associalo all'ID file di mappatura dichiarato nel file di risorse Android (XML) specificato.
crashlytics:symbols:upload \
--app FIREBASE_APP_ID \
PATH/TO/SYMBOLS...

Genera un file di simboli compatibile con Crashlytics per gli arresti anomali della libreria nativa Android (ad esempio, Android NDK o build Android di Unity o Flutter) e caricalo sui server Firebase.

Questo comando supporta solo Android. Per i dSYM di iOS, utilizza lo script upload-symbols dell'SDK Apple.

Comandi Extensions

Comando Descrizione
ext Visualizza informazioni su come utilizzare i comandi Firebase Extensions.
Elenca le istanze di estensione installate nel progetto attivo.
ext:configure \
EXTENSION_INSTANCE_ID
Riconfigura i valori parametro di un'istanza di estensione nel tuo manifest dell'estensione.
ext:info \
PUBLISHER_ID/EXTENSION_ID
Stampa informazioni dettagliate su un'estensione.
ext:install \
PUBLISHER_ID/EXTENSION_ID
Aggiungi una nuova istanza di un'estensione al tuo manifest dell'estensione.
ext:sdk:install \
EXTENSION_NAME
Installa gli SDK per definire le estensioni nelle funzioni.
ext:list Elenca tutte le istanze di estensione installate in un progetto Firebase.
Stampa l'ID istanza per ogni estensione.
ext:uninstall \
EXTENSION_INSTANCE_ID
Rimuovi un'istanza di estensione dal manifest dell'estensione.
ext:update \
EXTENSION_INSTANCE_ID \
[UPDATE_SOURCE]

Aggiorna un'istanza di estensione all'ultima versione (o alla versione UPDATE_SOURCE pubblicata specificata) nel tuo manifest dell'estensione. Tieni presente che per UPDATE_SOURCE i percorsi e gli URL locali non sono supportati.

La CLI visualizza un messaggio di conferma prima di eseguire l'azione. Puoi passare -f o --force per saltare questo prompt in modalità interattiva; tuttavia, ext:update è un comando solo interattivo e non è supportato in modalità non interattiva anche con -f o --force.

ext:export Esporta tutte le istanze delle estensioni installate dal progetto nel manifest delle estensioni.

Comandi Extensions publisher

Comando Descrizione
ext:dev:init Inizializza un codebase di scheletro per una nuova estensione nella directory corrente.
ext:dev:list \
PUBLISHER_ID
Stampa un elenco di tutte le estensioni caricate da un publisher.
ext:dev:register Disabilitato.
La registrazione di nuovi ID profilo del publisher non è più supportata.
ext:dev:deprecate \
PUBLISHER_ID/EXTENSION_ID \
[VERSION_PREDICATE]
Ritira le versioni delle estensioni che corrispondono al predicato della versione.
Un predicato di versione può essere una singola versione (ad esempio 1.0.0) o un intervallo di versioni (ad esempio >1.0.0).
Se non viene fornito alcun predicato di versione, vengono ritirate tutte le versioni dell'estensione.
ext:dev:undeprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Annulla il ritiro delle versioni dell'estensione che corrispondono al predicato della versione.
Un predicato di versione può essere una singola versione (ad esempio 1.0.0) o un intervallo di versioni (ad esempio >1.0.0).
ext:dev:upload \
PUBLISHER_ID/EXTENSION_ID
Carica una nuova versione di un'estensione.
ext:dev:usage \
PUBLISHER_ID
Visualizza i conteggi delle installazioni e le metriche di utilizzo per le estensioni caricate da un publisher.

Comandi Hosting

Comando Descrizione
hosting:disable

Interrompi la pubblicazione del traffico Firebase Hosting per un sito Hosting.

Dopo l'esecuzione di questo comando, l'URL Hosting del sito mostrerà un messaggio "Sito non trovato".

Questo comando supporta il seguente flag facoltativo:

  • --site SITE_ID
    Specifica il sito Hosting da disattivare. Se omesso, il valore predefinito è il sito Hosting predefinito del progetto Firebase attivo.

La CLI visualizza un messaggio di conferma prima di eseguire l'azione. Per saltare il prompt di conferma (obbligatorio in modalità non interattiva), passa i seguenti flag: -f o --force.

Gestione di Hosting siti
hosting:sites:create \
[SITE_ID]

Crea un nuovo sito Hosting utilizzando il SITE_ID specificato.

Se l'interfaccia a riga di comando è in esecuzione in modalità non interattiva, SITE_ID è obbligatorio.

Questo comando supporta il seguente flag facoltativo:

  • --app FIREBASE_APP_ID
    Specifica un'app web Firebase esistente da associare al nuovo sito Hosting.
hosting:sites:delete \
SITE_ID

Elimina il sito Hosting specificato.

La CLI visualizza un messaggio di conferma prima di eseguire l'azione. Per saltare il prompt di conferma (obbligatorio in modalità non interattiva), passa i seguenti flag: -f o --force.

hosting:sites:get \
SITE_ID

Recupera i dettagli del sito Hosting specificato.

L'output della tabella include l'ID sito, l'URL predefinito e l'ID app web Firebase (se collegato). I metadati aggiuntivi (ad esempio se il sito è DEFAULT_SITE o USER_SITE) vengono inclusi nell'output JSON non elaborato solo quando viene passato --json.

hosting:sites:list Elenca tutti i siti Hosting nel progetto Firebase attivo.
Gestione dei canali in anteprima
hosting:channel:create \
[CHANNEL_ID]

Crea un nuovo canale di anteprima per un sito Hosting utilizzando il CHANNEL_ID specificato.
Questo comando non esegue il deployment nel canale.

Se l'interfaccia a riga di comando è in esecuzione in modalità non interattiva, CHANNEL_ID è obbligatorio.

Questo comando supporta il seguente flag facoltativo:

  • --site SITE_ID
    Specifica il sito Hosting in cui creare il canale di anteprima. Se omesso, il valore predefinito è il sito Hosting predefinito del progetto Firebase attivo.
hosting:channel:delete \
CHANNEL_ID

Elimina il canale di anteprima specificato. Non puoi eliminare il canale live di un sito.

Questo comando supporta il seguente flag facoltativo:

  • --site SITE_ID
    Specifica il sito Hosting da cui eliminare il canale di anteprima. Se omesso, il valore predefinito è il sito Hosting predefinito del progetto Firebase attivo.

La CLI visualizza un messaggio di conferma prima di eseguire l'azione. Per saltare il prompt di conferma (obbligatorio in modalità non interattiva), passa i seguenti flag: -f o --force.

hosting:channel:deploy \
CHANNEL_ID

Esegui il deployment dei contenuti e della configurazione di Hosting nel canale di anteprima specificato.
Se il canale di anteprima non esiste ancora, questo comando lo crea nel sito Hosting prima di eseguire il deployment nel canale.

Questo comando supporta il seguente flag facoltativo:

  • --only TARGETS
    Specifica un elenco separato da virgole di target Hosting configurati in firebase.json per il deployment nel canale di anteprima. Se omesso, il deployment viene eseguito su tutti i siti Hosting configurati in firebase.json.
hosting:channel:list

Elenca tutti i canali (incluso il canale "live") per un sito Hosting.

Questo comando supporta il seguente flag facoltativo:

  • --site SITE_ID
    Specifica il sito Hosting per cui elencare i canali. Se omesso, il valore predefinito è il sito Hosting predefinito del progetto Firebase attivo.
hosting:channel:open \
[CHANNEL_ID]

Apri un browser all'URL del canale specificato o restituisci l'URL se l'apertura in un browser non è possibile.

Se l'interfaccia a riga di comando è in esecuzione in modalità non interattiva, CHANNEL_ID è obbligatorio.

Questo comando supporta il seguente flag facoltativo:

  • --site SITE_ID
    Specifica il sito Hosting per il canale Anteprima. Se omesso, il valore predefinito è il sito Hosting predefinito del progetto Firebase attivo.
Clonazione delle versioni
hosting:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Clona la versione di cui è stato eseguito il deployment più di recente nel canale "source" specificato nel canale "target" specificato.

Questo comando esegue anche il deployment nel canale "target" specificato. Se il canale "target" non esiste ancora, questo comando crea un nuovo canale di anteprima nel sito Hosting "target" prima del deployment nel canale.

hosting:clone \
SOURCE_SITE_ID@VERSION_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

Clona la versione specificata nel canale "target" specificato.

Questo comando esegue anche il deployment nel canale "target" specificato. Se il canale "target" non esiste ancora, questo comando crea un nuovo canale di anteprima nel sito Hosting "target" prima del deployment nel canale.

Puoi trovare VERSION_ID nella dashboard Hosting della console Firebase.

Comandi Realtime Database

Tieni presente che puoi creare l'istanza Realtime Database predefinita iniziale nella console Firebase o utilizzando il flusso di lavoro firebase init generale o il flusso firebase init database specifico.

Una volta create, puoi gestire le istanze come descritto in Gestisci e interagisci con istanze specifiche utilizzando l'interfaccia a riga di comando.

Comando Descrizione
database:get \
PATH

Recupera i dati nella posizione del database specificata (PATH) per un'istanza Realtime Database e visualizza i dati in formato JSON. Supporta l'esecuzione di query sui dati indicizzati.

Questo comando supporta il seguente flag facoltativo:

  • --instance DATABASE_NAME
    Specifica l'istanza Realtime Database per l'azione. Se omesso, il valore predefinito è l'istanza predefinita Realtime Database del progetto Firebase attivo.
database:instances:create \
DATABASE_NAME \
--location REGION_NAME

Crea un'istanza Realtime Database con il DATABASE_NAME specificato nella località specificata.

Questo comando supporta il seguente flag facoltativo (ma consigliato):

Non puoi utilizzare questo comando per creare l'istanza Realtime Database predefinita per il progetto Firebase attivo. Se il progetto non contiene istanze Realtime Database esistenti, ti verrà chiesto di eseguire il flusso firebase init per creare la prima istanza Realtime Database del progetto (l'istanza predefinita).

database:instances:list

Elenca tutte le istanze Realtime Database nel progetto Firebase attivo.

Questo comando supporta il seguente flag facoltativo:

  • --location REGION_NAME
    Specifica una località specifica per elencare le istanze Realtime Database. Per i nomi delle regioni disponibili, consulta Località per Realtime Database.
database:profile

Crea un profilo delle operazioni per un'istanza Realtime Database.
Per maggiori dettagli, consulta Tipi di operazioni Realtime Database.

Questo comando supporta il seguente flag facoltativo:

  • --instance DATABASE_NAME
    Specifica l'istanza Realtime Database per l'azione. Se omesso, il valore predefinito è l'istanza predefinita Realtime Database del progetto Firebase attivo.
database:push \
PATH \
[INFILE]

Invia nuovi dati a un elenco nella posizione del database specificata (PATH) in un'istanza Realtime Database.

Accetta l'input da un file (INFILE), da STDIN o dal flag -d (--data).

Questo comando supporta il seguente flag facoltativo:

  • --instance DATABASE_NAME
    Specifica l'istanza Realtime Database per l'azione. Se omesso, il valore predefinito è l'istanza predefinita Realtime Database del progetto Firebase attivo.
database:remove \
PATH

Elimina tutti i dati nella posizione del database specificata (PATH) in un'istanza Realtime Database.

Questo comando supporta il seguente flag facoltativo:

  • --instance DATABASE_NAME
    Specifica l'istanza Realtime Database per l'azione. Se omesso, il valore predefinito è l'istanza predefinita Realtime Database del progetto Firebase attivo.

La CLI visualizza un messaggio di conferma prima di eseguire l'azione. Per saltare il prompt di conferma (obbligatorio in modalità non interattiva), passa i seguenti flag: -f o --force.

database:set \
PATH \
[INFILE]

Sostituisci tutti i dati nella posizione del database specificata (PATH) in un'istanza Realtime Database.

Accetta l'input da un file (INFILE), da STDIN o dal flag -d (--data).

Questo comando supporta il seguente flag facoltativo:

  • --instance DATABASE_NAME
    Specifica l'istanza Realtime Database per l'azione. Se omesso, il valore predefinito è l'istanza predefinita Realtime Database del progetto Firebase attivo.

La CLI visualizza un messaggio di conferma prima di eseguire l'azione. Per saltare il prompt di conferma (obbligatorio in modalità non interattiva), passa i seguenti flag: -f o --force.

database:update \
PATH \
[INFILE]

Esegui un aggiornamento parziale nella posizione del database specificata (PATH) in un'istanza Realtime Database.

Accetta l'input da un file (INFILE), da STDIN o dal flag -d (--data).

Questo comando supporta il seguente flag facoltativo:

  • --instance DATABASE_NAME
    Specifica l'istanza Realtime Database per l'azione. Se omesso, il valore predefinito è l'istanza predefinita Realtime Database del progetto Firebase attivo.

La CLI visualizza un messaggio di conferma prima di eseguire l'azione. Per saltare il prompt di conferma (obbligatorio in modalità non interattiva), passa i seguenti flag: -f o --force.

Comandi Remote Config

Questi comandi e i relativi casi d'uso sono descritti in maggiore dettaglio in Modifica Remote Config in modo programmatico.

Comando Descrizione
remoteconfig:versions:list

Elenca tutte le versioni del template Remote Config.

Questo comando supporta il seguente flag facoltativo:

  • --limit NUMBER_OF_VERSIONS
    Specifica il numero massimo di versioni da restituire. Specifica 0 per restituire tutte le versioni esistenti. Se omesso, il valore predefinito è 10.
remoteconfig:get \
--version-number VERSION_NUMBER

Recupera i dettagli del template Remote Config nella versione specificata.

Questo comando supporta i seguenti flag facoltativi (ma consigliati):

  • -v o --version-number VERSION_NUMBER
    Specifica la versione del template Remote Config da recuperare. Se omesso, il valore predefinito è l'ultima versione.
  • -o o --output FILENAME
    Scrive l'output in un file JSON con il nome file specificato anziché stamparlo come tabella.
remoteconfig:rollback \
--version-number VERSION_NUMBER

Esegui il rollback del template Remote Config alla versione precedente specificata.

Questo comando supporta il seguente flag facoltativo (ma consigliato):

  • -v o --version-number VERSION_NUMBER
    Specifica la versione del template Remote Config di cui eseguire il rollback. Se omesso, il valore predefinito è la versione immediatamente precedente (versione corrente - 1).

La CLI visualizza un messaggio di conferma prima di eseguire l'azione. Per saltare il prompt di conferma (obbligatorio in modalità non interattiva), passa i seguenti flag: -f o --force.

remoteconfig:experiments:list

Elenca tutti gli esperimenti Remote Config nel progetto Firebase attivo.

Questo comando supporta i seguenti flag facoltativi:

  • --filter EXPRESSION
    Specifica l'espressione per filtrare gli esperimenti.
  • --pageSize NUMBER
    Specifica il numero di esperimenti da restituire per pagina. Se omesso, il valore predefinito è 10.
  • --pageToken TOKEN
    Specifica l'offset iniziale per l'elenco.
remoteconfig:experiments:get \
EXPERIMENT_ID

Recupera i dettagli dell'esperimento Remote Config specificato.

L'output della tabella include il nome della risorsa dell'esperimento, il nome visualizzato, lo stato (PENDING, RUNNING, DONE o EXPIRED), le ore di inizio e di fine, le varianti (nomi e pesi di assegnazione del traffico) e gli obiettivi/le metriche configurati. La descrizione dell'esperimento viene inclusa nell'output JSON non elaborato solo quando viene passato --json.

remoteconfig:experiments:delete \
EXPERIMENT_ID

Elimina l'esperimento Remote Config specificato.

La CLI visualizza un messaggio di conferma prima di intervenire e non supporta un flag -f o --force. In modalità non interattiva, la conferma viene impostata su No per impostazione predefinita e il comando viene chiuso senza eliminare l'esperimento.

remoteconfig:rollouts:list

Elenca tutti i rollout di Remote Config nel progetto Firebase attivo.

Questo comando supporta i seguenti flag facoltativi:

  • --filter EXPRESSION
    Specifica l'espressione per filtrare le implementazioni.
  • --pageSize NUMBER
    Specifica il numero di implementazioni da restituire per pagina. Se omesso, il valore predefinito è 10.
  • --pageToken TOKEN
    Specifica l'offset iniziale per l'elenco.
remoteconfig:rollouts:get \
ROLLOUT_ID
Recupera i dettagli dell'implementazione Remote Config specificata.
remoteconfig:rollouts:delete \
ROLLOUT_ID

Elimina l'implementazione Remote Config specificata.

La CLI visualizza un messaggio di conferma prima di intervenire e non supporta un flag -f o --force. (In modalità non interattiva, la conferma viene impostata su No per impostazione predefinita e il comando viene chiuso senza eliminare l'implementazione.)

Comandi SQL Connect

Questi comandi e i relativi casi d'uso sono descritti in maggiore dettaglio nella guida di riferimento dell'interfaccia a riga di comando SQL Connect.

Comando Descrizione
dataconnect:services:list Elenca tutti i servizi SQL Connect di cui è stato eseguito il deployment nel progetto Firebase attivo.
dataconnect:sql:diff

Visualizza le differenze tra uno schema SQL Connect locale e lo schema del database Cloud SQL.

Questo comando supporta i seguenti flag facoltativi:

  • --service SERVICE_ID
    Specifica l'ID servizio SQL Connect. Se omesso, utilizza il singolo servizio configurato in firebase.json. Se sono configurati più servizi, il comando non va a buon fine, a meno che non specifichi --service e, se necessario, --location.
  • --location LOCATION
    Specifica la località del servizio SQL Connect. Obbligatorio solo se l'ID servizio viene utilizzato in più località.
dataconnect:sql:migrate

Esegui la migrazione dello schema per il tuo database Cloud SQL in modo che corrisponda allo schema SQL Connect locale.

Questo comando supporta i seguenti flag facoltativi:

  • --service SERVICE_ID
    Specifica l'ID servizio SQL Connect. Se omesso, utilizza il singolo servizio configurato in firebase.json (se sono configurati più servizi, il comando non va a buon fine, a meno che non specifichi --service e, se necessario, --location).
  • --location LOCATION
    Specifica la località del servizio SQL Connect. Obbligatorio solo se l'ID servizio viene utilizzato in più località.

In modalità interattiva, l'interfaccia a riga di comando visualizza un prompt di conferma prima di intraprendere un'azione. In modalità non interattiva, le migrazioni non distruttive vengono eseguite automaticamente, mentre le modifiche distruttive vengono interrotte, a meno che non passi -f o --force (che salta anche i prompt di conferma in modalità interattiva).

dataconnect:sql:grant \
--role SQL_ROLE \
--email EMAIL_ADDRESS

Concedi il ruolo SQL_ROLE specificato (uno tra: owner, writer o reader) all'EMAIL_ADDRESS specificato dell'utente o del service account.

Questo comando supporta i seguenti flag facoltativi:

  • --service SERVICE_ID
    Specifica l'ID servizio SQL Connect. Se omesso, utilizza il singolo servizio configurato in firebase.json (se sono configurati più servizi, il comando non va a buon fine, a meno che non specifichi --service e, se necessario, --location).
  • --location LOCATION
    Specifica la località del servizio SQL Connect. Obbligatorio solo se l'ID servizio viene utilizzato in più località.
dataconnect:sdk:generate

Genera SDK tipizzati per i tuoi connettori SQL Connect.

Questo comando supporta i seguenti flag facoltativi:

  • --service SERVICE_ID
    Specifica l'ID servizio SQL Connect. Se omesso, genera SDK per tutti i servizi configurati.
  • --location LOCATION
    Specifica la località del servizio SQL Connect. Obbligatorio solo se l'ID servizio viene utilizzato in più località.
  • --watch
    Controlla le modifiche ai file GQL del connettore e rigenera gli SDK quando si verificano aggiornamenti.