Riferimento per l'interfaccia a riga di comando di Firebase

L'interfaccia a riga di comando Firebase (GitHub) fornisce una serie di strumenti per gestire, visualizzare ed eseguire il deployment nei progetti Firebase.

Prima di utilizzare l'interfaccia a riga di comando di 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 adatto al tuo sistema operativo, al tuo livello di esperienza e/o al tuo caso d'uso. Indipendentemente dal modo in cui installi il CLI, hai accesso alle stesse funzionalità e al comando firebase.

Windows macOS Linux

Windows

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

Opzione Descrizione Consigliati per…
File binario autonomo Scarica il programma binario autonomo per la CLI. Poi, puoi accedere all'eseguibile per aprire una shell in cui puoi eseguire il comando firebase. Nuovi sviluppatori

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

file binario autonomo

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

  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. Continua per accedere e 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-windows (Node Version Manager). L'installazione di Node.js installa automaticamente gli strumenti di comando npm.

  2. Installa Firebase CLI tramite npm eseguendo il seguente comando:

    npm install -g firebase-tools

    Questo comando attiva il comando firebase disponibile a livello globale.

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

macOS o Linux

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

Opzione Descrizione Consigliati per…
script di installazione automatica Esegui un singolo comando che rileva automaticamente il sistema operativo, scarica la release CLI più recente e attiva il comando firebase disponibile a livello globale. Nuovi sviluppatori

Sviluppatori che non utilizzano o non conoscono Node.js

Deployment automatici in un ambiente CI/CD
File binario autonomo Scarica il programma binario autonomo per la CLI. Poi puoi configurare ed eseguire il programma binario in base al tuo flusso di lavoro. Flussi di lavoro completamente personalizzabili utilizzando l'interfaccia a riga di comando
npm Utilizza npm (Node Package Manager) per installare l'interfaccia a riga di comando e attivare 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 il seguente comando cURL:

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

    Questo script rileva automaticamente il sistema operativo, scarica la release CLI Firebase più recente e attiva il comando firebase disponibile a livello globale.

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

Per altri esempi e dettagli sullo script di installazione automatica, consulta il codice sorgente dello script su firebase.tools.

file binario autonomo

Per scaricare ed eseguire il file binario per la CLI Firebase specifico per il tuo sistema operativo, segui questi passaggi:

  1. Scarica il file binario della CLI 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 PATH.
  3. Continua per accedere e 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 Version Manager).
    L'installazione di Node.js installa automaticamente gli strumenti a riga di comando npm.

  2. Installa Firebase CLI tramite npm eseguendo il seguente comando:

    npm install -g firebase-tools

    Questo comando attiva il comando firebase disponibile a livello globale.

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

Accedi e testa l'interfaccia a riga di comando Firebase

Dopo aver installato la CLI, devi autenticarti. Dopodiché puoi confermare l'autenticazione elencando i tuoi progetti Firebase.

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

    firebase login

    Questo comando connette la tua macchina locale a Firebase e ti concede 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 dovrebbe essere uguale a quello dei progetti Firebase elencati nella console Firebase.

Eseguire l'aggiornamento alla versione più recente del CLI

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 dalla modalità di installazione dell'interfaccia a riga di comando.

Windows

  • file binario autonomo: scarica la nuova versione, poi sostituiscila sul tuo sistema
  • npm: esegui npm install -g firebase-tools

macOS

  • script di installazione automatica: Esegui curl -sL https://firebase.tools | upgrade=true bash
  • file 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
  • file binario autonomo: scarica la nuova versione, quindi sostituiscila sul tuo sistema
  • npm: esegui npm install -g firebase-tools

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

La CLI Firebase richiede un browser per completare l'autenticazione, ma è completamente compatibile con CI e altri ambienti headless.

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

  2. Avvia la procedura di accesso eseguendo il seguente comando:

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

  4. Stampa un nuovo token di aggiornamento. La sessione CLI corrente non sarà interessata.

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

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

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

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

Inizializzare un progetto Firebase

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

Per inizializzare un nuovo progetto Firebase, esegui il seguente 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, la CLI Firebase ti chiede di completare le seguenti attività:

  • Seleziona i prodotti Firebase che vuoi configurare nel tuo progetto Firebase.

    In questo passaggio ti viene chiesto di impostare le configurazioni per file specifici per i prodotti selezionati. Per ulteriori dettagli su queste configurazioni, consulta la documentazione del prodotto specifico (ad esempio Hosting). Tieni presente che puoi sempre eseguire firebase init in un secondo momento per configurare altri prodotti Firebase.

  • 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 (ad es. firebase deploy) vengano eseguiti sul progetto Firebase appropriato.

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

Al termine dell'inizializzazione, Firebase crea automaticamente i seguenti due file nella directory principale della tua 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 firebase.json file di configurazione nella directory principale del progetto.

Il file firebase.json è necessario per eseguire il deployment delle risorse con l'interfaccia a riga di comando Firebase perché specifica quali file e impostazioni della directory del progetto vengono eseguiti nel progetto Firebase. Poiché alcune impostazioni possono essere definite nella directory del progetto o nella console Firebase, assicurati di risolvere eventuali conflitti di deployment.

Puoi configurare la maggior parte delle opzioni Firebase Hosting direttamente nel file firebase.json. Tuttavia, per altri servizi Firebase che possono essere 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 predeploy o postdeploy nel file firebase.json.

Di seguito è riportato un esempio di file firebase.json con le impostazioni predefinite se selezioni Firebase Hosting, Cloud Firestore e Cloud Functions for Firebase (con le opzioni di lint e del codice sorgente TypeScript selezionate) durante l'inizializzazione.

{
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ]
  },
  "firestore": {
      "rules": "firestore.rules",
      "indexes": "firestore.indexes.json"
  },
  "functions": {
    "predeploy": [
      "npm --prefix \"$RESOURCE_DIR\" run lint",
      "npm --prefix \"$RESOURCE_DIR\" run build"
    ]
  }
}

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 sopra.

Se il progetto contiene più database Cloud Firestore, modifica il file firebase.json per associare a ciascun database diversi file di origine dell'indice Cloud Firestore Security Rules e del 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"
        }
      ],

File Cloud Functions 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, viene impedito 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 conservare (o aggiungere, se mancante) l'elenco di file mostrato sopra.

Gestire gli alias dei progetti

Puoi associare più progetti Firebase alla stessa directory del progetto. Ad esempio, potresti 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 eseguire il deployment in produzione. Il comando firebase use ti consente di passare da un alias all'altro e di crearne di nuovi.

Aggiungere un alias di 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 altro progetto Firebase, ma utilizzando comunque la stessa directory del progetto, esegui il seguente 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 di alias vengono scritte in un file .firebaserc all'interno della directory del progetto.

Utilizzare gli alias dei progetti

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

Comando Descrizione
firebase use Visualizza un elenco degli alias attualmente definiti per la directory del progetto
firebase use \
PROJECT_ID|ALIAS
Indica a tutti i comandi di essere eseguiti nel progetto Firebase specificato.
L'interfaccia a riga di comando utilizza questo progetto come "progetto attivo" corrente.
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 sostituire il progetto attualmente attivo passando il flag --project con qualsiasi comando CLI. Ad esempio, puoi impostare la CLI in modo che venga eseguita in 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 controllare 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 per i modelli di partenza, in genere non devi 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 progetto Firebase localmente

Puoi visualizzare e testare il tuo progetto Firebase su URL ospitati localmente prima di eseguire 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 il seguente 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

Emulare il 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

Eseguire il test da altri dispositivi locali

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

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 progetto Firebase, tra cui:

  • Nuove release dei tuoi siti Firebase Hosting
  • Cloud Functions for Firebase nuovo, aggiornato o esistente
  • Schemi e connettori nuovi o aggiornati per Firebase Data Connect
  • Regole per Firebase Realtime Database
  • Regole per Cloud Storage for Firebase
  • Regole per Cloud Firestore
  • Indici per Cloud Firestore

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

firebase deploy

Facoltativamente, puoi aggiungere un commento a ogni implementazione. Questo commento verrà visualizzato insieme alle altre informazioni di deployment nella Firebase Hosting pagina 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 del 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 funzionalità o servizi Firebase specifici, utilizza il deployment parziale.

Conflitti di implementazione per le regole di sicurezza

Per Firebase Realtime Database, Cloud Storage for Firebase e Cloud Firestore, puoi definire le regole di sicurezza nella directory del progetto locale o nella console Firebase.

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

Quote di deployment

È possibile (anche se improbabile) che tu possa superare 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 progetto selezionando l'azione Rollback per la release che ti interessa.

Al momento non è possibile eseguire il rollback delle release delle regole di sicurezza per Firebase Realtime Database, Cloud Storage for Firebase o Cloud Firestore.

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 seguente comando esegue il deployment di regole di sicurezza e contenuti Firebase Hosting.Cloud Storage

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 hosting Contenuti in Firebase Hosting
--only database Firebase Realtime Database regole
--only dataconnect Firebase Data Connect schemi e connettori
--only storage Cloud Storage for Firebase regole
--only firestore Regole Cloud Firestore e indici per tutti i database configurati
--only functions Cloud Functions for Firebase (sono possibili versioni più specifiche di questo flag)

Esegui il deployment di funzioni specifiche

Quando esegui il deployment di funzioni, puoi scegliere come target funzioni specifiche. Ad esempio:

firebase deploy --only functions:function1
firebase deploy --only functions:function1,functions:function2

Un'altra opzione è raggruppare le funzioni in gruppi di esportazione nel /functions/index.js file. Le funzioni di raggruppamento ti consentono di implementare più funzioni con un unico comando.

Ad esempio, puoi scrivere le seguenti funzioni per definire un groupA e un groupB:

var functions = require('firebase-functions/v1');

exports.groupA = {
  function1: functions.https.onRequest(...),
  function2: functions.database.ref('\path').onWrite(...)
}
exports.groupB = require('./groupB');

In questo esempio, un file functions/groupB.js separato contiene funzioni aggiuntive che definiscono in modo specifico le funzioni in groupB. Ad esempio:

var functions = require('firebase-functions/v1');

exports.function3 = functions.storage.object().onChange(...);
exports.function4 = functions.analytics.event('in_app_purchase').onLog(...);

In questo esempio, puoi eseguire il deployment di tutte le funzioni groupA eseguendo il seguente comando dalla directory del progetto:

firebase deploy --only functions:groupA

In alternativa, puoi scegliere come target una funzione specifica all'interno di un gruppo eseguendo il seguente comando:

firebase deploy --only functions:groupA.function1,groupB.function4

Elimina funzioni

L'interfaccia a riga di comando Firebase supporta i seguenti comandi e opzioni per eliminare le funzioni di cui è stato eseguito il deployment in precedenza:

  • Consente di eliminare tutte le funzioni che corrispondono al nome specificato in tutte le regioni:

    firebase functions:delete FUNCTION-1_NAME

  • Elimina una funzione specificata in esecuzione in una regione non predefinita:

    firebase functions:delete FUNCTION-1_NAME --region REGION_NAME

  • Elimina più di una funzione:

    firebase functions:delete FUNCTION-1_NAME FUNCTION-2_NAME

  • Consente di eliminare un gruppo di funzioni specificato:

    firebase functions:delete GROUP_NAME

  • Ignora la richiesta di conferma:

    firebase functions:delete FUNCTION-1_NAME --force

Configurare le attività basate su script di predeployment e postdeployment

Puoi collegare gli script shell al comando firebase deploy per eseguire attività di predeployment o postdeployment. Ad esempio, uno script di predeployment potrebbe transpilare il codice TypeScript in JavaScript e un hook postdeployment potrebbe notificare agli amministratori i nuovi deployment dei contenuti del sito in Firebase Hosting.

Per configurare gli hook predeploy o postdeploy, aggiungi script bash al file di configurazione firebase.json. Puoi definire script brevi direttamente nel file firebase.json oppure fare riferimento ad altri file nella directory del progetto.

Ad esempio, lo script seguente è l'espressione firebase.json per un'attività post-deployment che invia un messaggio Slack al termine del deployment a 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 risorsa che puoi implementare. Tieni presente che l'esecuzione di firebase deploy attiva tutte le attività di 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.

Entrambi gli hook predeploy e postdeploy stampano gli stream di output ed errori standard degli script sul terminale. Per i casi di errore, tieni presente quanto segue:

  • Se un hook di predeployment non riesce a completare 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

All'interno degli script eseguiti negli hook predeploy e postdeploy, sono disponibili le seguenti variabili di ambiente:

  • $GCLOUD_PROJECT: l'ID del progetto attivo
  • $PROJECT_DIR: la directory principale contenente il file firebase.json
  • $RESOURCE_DIR: (solo per gli script hosting e functions) la posizione della directory contenente le risorse Hosting o Cloud Functions da implementare

Gestire più istanze Realtime Database

Un progetto Firebase può avere più istanze Firebase Realtime Database. Per impostazione predefinita, i comandi dell'interfaccia a riga di comando interagiscono con l'istanza del database predefinita.

Tuttavia, puoi interagire con un'istanza di database non predefinita utilizzando il flag --instance DATABASE_NAME. I seguenti comandi supportano il flag --instance:

  • firebase database:get
  • firebase database:profile
  • firebase database:push
  • firebase database:remove
  • firebase database:set
  • firebase database:update

Riferimento ai comandi

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 nel tuo account Firebase. 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 Genera un token di autenticazione da utilizzare in ambienti non interattivi.
logout Esegue la disconnessione dell'interfaccia a riga di comando dal tuo account Firebase.
open Apre un browser per accedere alle risorse del progetto pertinenti.
projects:list Elenca tutti i progetti Firebase a cui hai accesso.
use Imposta il progetto Firebase attivo per l'interfaccia a riga di comando.
Gestisce gli alias dei progetti.

Comandi di gestione dei progetti

Comando Descrizione
Gestione dei progetti Firebase
projects:addfirebase Aggiunge risorse Firebase a un progetto Google Cloud esistente.
projects:create Crea un nuovo progetto Google Cloud e poi aggiunge le risorse Firebase al 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 nel progetto attivo.
apps:list Elenca le app Firebase registrate nel progetto attivo.
apps:sdkconfig Stampa la configurazione dei servizi Google di un'app Firebase.
setup:web Ritirata. Utilizza apps:sdkconfig e specifica web come argomento della piattaforma.
Stampa la configurazione dei servizi Google di un'app web Firebase.
Gestione degli hash dei certificati SHA (solo Android)
apps:android:sha:create \
FIREBASE_APP_ID SHA_HASH
Aggiunge l'hash del certificato SHA specificato all'app Android Firebase specificata.
apps:android:sha:delete \
FIREBASE_APP_ID SHA_HASH
Elimina l'hash del certificato SHA specificato dall'app Android Firebase specificata.
apps:android:sha:list \
FIREBASE_APP_ID
Elenca gli hash dei certificati SHA per l'app Firebase per Android specificata.

Deployment e sviluppo locale

Questi comandi ti consentono di eseguire il deployment e interagire con il tuo sito Firebase Hosting.

Comando Descrizione
deployment Esegue il deployment di codice e asset dalla directory del progetto al progetto attivo. Per Firebase Hosting è necessario un file di configurazione firebase.json.
serve Avvia un server web locale con la configurazione di Firebase Hosting. Per Firebase Hosting è necessario un file di configurazione firebase.json.

App Distribution comandi

Comando Descrizione
appdistribution:distribute \
--app FIREBASE_APP_ID
Rende la build disponibile per i tester.
appdistribution:testers:add Aggiunge tester al progetto.
appdistribution:testers:remove Rimuove i tester dal progetto.

App Hosting comandi

Comando Descrizione
apphosting:backends:create \
--project PROJECT_ID \
--location REGION --app APP_ID
Crea la raccolta di risorse gestite collegate a un singolo codebase che comprende un backend App Hosting. Se vuoi, specifica un'app web Firebase esistente tramite il relativo ID app Firebase.
apphosting:backends:get \
BACKEND_ID \
--project PROJECT_ID \
--location REGION
Recupera dettagli specifici, incluso l'URL pubblico, di un backend.
apphosting:backends:list \
--project PROJECT_ID
Recupera un elenco di tutti i backend attivi associati a un progetto.
firebase apphosting:backends:delete \
BACKEND_ID \
--project PROJECT_ID \
--location REGION
Consente di eliminare un backend dal progetto.
firebase apphosting:config:export \
--project PROJECT_ID \
--secrets ENVIRONMENT_NAME
Esporta i secret da utilizzare nell'emulazione di app.
Per impostazione predefinita, fa riferimento ai secret archiviati in apphosting.yaml oppure accetta --secrets per specificare qualsiasi ambiente con un corrispondente apphosting.ENVIRONMENT_NAME.yaml file.
firebase apphosting:rollouts:create \
BACKEND_ID \
--git_branch BRANCH_NAME \
--git_commit COMMIT_ID
Crea un'implementazione attivata manualmente.
(Facoltativo) Specifica il commit più recente di un ramo o un commit specifico. Se non vengono fornite opzioni, viene richiesta la selezione da un elenco di rami.
apphosting:secrets:set KEY --project PROJECT_ID \
--location REGION \
--data-file DATA_FILE_PATH
Memorizza il materiale segreto in Secret Manager.
Se vuoi, fornisci un percorso file da cui leggere i dati riservati. Imposta su _ per leggere i dati riservati dall'input standard.
apphosting:secrets:grantaccess KEY BACKEND_ID \
--project PROJECT_ID \
--location REGION
Concedi al service account di backend l'accesso al secret fornito in modo che possa essere visualizzato da App Hosting in fase di compilazione o di esecuzione.
apphosting:secrets:describe KEY \
--project PROJECT_ID
Recupera i metadati di un secret e delle relative versioni.
firebase apphosting:secrets:access \
KEY[@version] \
--project PROJECT_ID
Accede al valore di un secret in base al secret e alla relativa versione. Il valore predefinito è l'accesso alla versione più recente.

Comandi Authentication (gestione utenti)

Comando Descrizione
auth:export Esporta gli account utente del progetto attivo in un file JSON o CSV. Per maggiori dettagli, consulta la pagina auth:import e auth:export.
auth:import Importa gli account utente da un file JSON o CSV nel progetto attivo. Per maggiori dettagli, consulta la pagina auth:import e auth:export.

Cloud Firestore comandi

Comando Descrizione
firestore:locations

Elenca le località disponibili per il tuo database Cloud Firestore.

firestore:databases:create DATABASE_ID

Crea un'istanza di database in modalità nativa nel tuo progetto Firebase.

Il comando accetta i seguenti flag:

  • --location <region name> per specificare la posizione di deployment del database. Tieni presente che puoi eseguire firebase firestore:locations per elencare le località disponibili. Obbligatorio.
  • --delete-protection <deleteProtectionState> per consentire o impedire l'eliminazione del database specificato. I valori validi sono ENABLED o DISABLED. Il valore predefinito è DISABLED.
  • --point-in-time-recovery <PITRState> per impostare se il recupero point-in-time è abilitato. I valori validi sono ENABLED o DISABLED. Il valore predefinito è DISABLED. Facoltativo.
firestore:databases:list

Elenca i database nel tuo progetto Firebase.

firestore:databases:get DATABASE_ID

Recupera la configurazione del database per un database specificato nel tuo progetto Firebase.

firestore:databases:update DATABASE_ID

Aggiorna la configurazione di un database specificato nel tuo progetto Firebase.

È obbligatorio specificare almeno un flag. Il comando accetta i seguenti flag:

  • --delete-protection <deleteProtectionState> per consentire o impedire l'eliminazione del database specificato. I valori validi sono ENABLED o DISABLED. Il valore predefinito è DISABLED.
  • --point-in-time-recovery <PITRState> per impostare se il recupero point-in-time è abilitato. I valori validi sono ENABLED o DISABLED. Il valore predefinito è DISABLED. Facoltativo.
firestore:databases:delete DATABASE_ID

Elimina un database nel tuo progetto Firebase.

firestore:indexes

Elenca gli indici di un database nel tuo progetto Firebase.

Il comando accetta il seguente flag:

  • --database DATABASE_ID per specificare il nome del database per cui elencare gli indici. Se non viene fornito, gli indici vengono elencati per il database predefinito.
firestore:delete

Elimina i documenti nel database del progetto attivo. Con l'interfaccia a riga di comando, puoi eliminare in modo ricorsivo tutti i documenti di una raccolta.

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

Il comando accetta il seguente flag:

  • --database DATABASE_ID per specificare il nome del database da cui vengono eliminati i documenti. Se non viene specificato, i documenti vengono eliminati dal database predefinito. Facoltativo.

Cloud Functions for Firebase comandi

Comando Descrizione
functions:config:clone Clona l'ambiente di un altro progetto nel progetto Firebase attivo.
functions:config:get Recupera i valori di configurazione esistenti di Cloud Functions del progetto attivo.
functions:config:set Memorizza i valori di configurazione di runtime di Cloud Functions del progetto attivo.
functions:config:unset Rimuove i valori dalla configurazione di runtime del progetto attivo.
functions:log Legge i log di Cloud Functions di cui è stato eseguito il deployment.

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

Crashlytics comandi

Comando Descrizione
crashlytics:mappingfile:generateid \
--resource-file=PATH/TO/ANDROID_RESOURCE.XML
Genera un ID file di mappatura univoco nel file di risorsa 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 questa app e lo associa 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 delle librerie native su Android e lo carica sui server Firebase.

Data Connect comandi

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

Comando Descrizione
dataconnect:services:list Elenca tutti i servizi Data Connect di cui è stato eseguito il deployment nel tuo progetto Firebase.
dataconnect:sql:diff \
SERVICE_ID
Per il servizio specificato, vengono visualizzate le differenze tra uno schema Data Connect locale e lo schema del database Cloud SQL.
dataconnect:sql:migrate \
--force \
SERVICE_ID
Esegui la migrazione dello schema del database Cloud SQL in modo che corrisponda allo schema Data Connect locale.
dataconnect:sql:grant\
--role=ROLE \
--email=EMAIL \
SERVICE_ID
Concedi il ruolo SQL all'indirizzo email dell'utente o dell'account di servizio specificato.
Per il flag --role, il ruolo SQL da concedere è uno dei seguenti: owner, writer o reader.
Per il flag --email, fornisci l'indirizzo email dell'utente o dell'account di servizio a cui concedere il ruolo.
dataconnect:sdk:generate Genera SDK con tipi per i connettori Data Connect.

Extensions comandi

Comando Descrizione
ext Mostra informazioni su come utilizzare i comandi Firebase Extensions.
Elenca le istanze di estensioni installate nel progetto attivo.
ext:configure \
EXTENSION_INSTANCE_ID
Riconfigura i valori dei parametri di un'istanza dell'estensione nel manifest dell'estensione.
ext:info \
PUBLISHER_ID/EXTENSION_ID
Stampa informazioni dettagliate su un'estensione.
ext:install \
PUBLISHER_ID/EXTENSION_ID
Aggiunge una nuova istanza di un'estensione al manifest dell'estensione.
ext:list Elenca tutte le istanze dell'estensione installate in un progetto Firebase.
Stampa l'ID istanza per ogni estensione.
ext:uninstall \
EXTENSION_INSTANCE_ID
Rimuove un'istanza di estensione dal manifest dell'estensione.
ext:update \
EXTENSION_INSTANCE_ID
Aggiorna un'istanza dell'estensione alla versione più recente nel manifest dell'estensione.
ext:export Esporta tutte le istanze dell'estensione installate dal progetto al manifest dell'estensione.

Extensions comandi publisher

Comando Descrizione
ext:dev:init Inizializza una base di codice di base 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 Registra un progetto Firebase come progetto publisher di estensioni.
ext:dev:deprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Rimuove le versioni dell'estensione corrispondenti al predicato della versione.
Un predicato della versione può essere una singola versione (ad es. 1.0.0) o un intervallo di versioni (ad es. >1.0.0).
Se non viene fornito alcun predicato della versione, tutte le versioni dell'estensione vengono ritirate.
ext:dev:undeprecate \
PUBLISHER_ID/EXTENSION_ID \
VERSION_PREDICATE
Rimuove la ritirata delle versioni dell'estensione che corrispondono al predicato della versione.
Un predicato della versione può essere una singola versione (ad es. 1.0.0) o un intervallo di versioni (ad es. >1.0.0).
Se non viene fornito alcun predicato della versione, viene annullata la ritirata di tutte le versioni dell'estensione.
ext:dev:upload \
PUBLISHER_ID/EXTENSION_ID
Carica una nuova versione di un'estensione.
ext:dev:usage \
PUBLISHER_ID
Mostra i conteggi delle installazioni e le metriche di utilizzo per le estensioni caricate da un editore.

Hosting comandi

Comando Descrizione
hosting:disable

Interrompe la pubblicazione del traffico Firebase Hosting per il progetto Firebase attivo.

Dopo aver eseguito questo comando, nell'URL Hosting del progetto verrà visualizzato il messaggio "Sito non trovato".

Gestione di Hosting siti
firebase hosting:sites:create \
SITE_ID

Crea un nuovo sito Hosting nel progetto Firebase attivo utilizzando il SITE_ID specificato

(Facoltativo) Specifica un'app web Firebase esistente da associare al nuovo sito passando il seguente flag: --app FIREBASE_APP_ID

firebase hosting:sites:delete \
SITE_ID

Elimina il sito Hosting specificato

La CLI mostra un messaggio di conferma prima di eliminare il sito.

(Facoltativo) Salta la richiesta di conferma passando i seguenti flag: -f o --force

firebase hosting:sites:get \
SITE_ID

Recupera le informazioni sul sito Hosting specificato

firebase hosting:sites:list

Elenca tutti i siti Hosting per il progetto Firebase attivo

Gestione dei canali di anteprima
firebase hosting:channel:create \
CHANNEL_ID

Crea un nuovo canale di anteprima nel sito Hosting predefinito utilizzando il valore CHANNEL_ID specificato.

Questo comando non viene eseguito nel canale.

firebase hosting:channel:delete \
CHANNEL_ID

Elimina il canale di anteprima specificato

Non puoi eliminare il canale dal vivo di un sito.

firebase hosting:channel:deploy \
CHANNEL_ID

Esegue il deployment dei contenuti e della configurazione Hosting nel canale di anteprima specificato

Se il canale di anteprima non esiste ancora, questo comando lo crea nel sito Hosting predefinito prima di eseguire il deployment sul canale.

firebase hosting:channel:list Elenca tutti i canali (incluso il canale "live") nel sito Hosting predefinito
firebase hosting:channel:open \
CHANNEL_ID
Apre un browser con l'URL del canale specificato o restituisce l'URL se l'apertura in un browser non è possibile
Clonazione delle versioni
firebase 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 sul canale "di origine" specificato nel canale "di destinazione" 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 di eseguire il deployment nel canale.

firebase 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 di eseguire il deployment nel canale.

Puoi trovare VERSION_ID nella dashboard Hosting della console Firebase.

Realtime Database comandi

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

Una volta create, puoi gestirle come descritto in Gestire più istanze Realtime Database.

Comando Descrizione
database:get Recupera i dati dal database del progetto attivo e li mostra come JSON. Supporta l'esecuzione di query sui dati indicizzati.
database:instances:create Crea un'istanza di database con un nome dell'istanza specificato. Accetta l'opzione --location per la creazione di un database in una regione specificata. Per i nomi delle regioni da utilizzare con questa opzione, consulta Selezionare le località per il progetto. Se non esiste un'istanza di database per il progetto corrente, ti viene chiesto di eseguire il flusso firebase init per crearne una.
database:instances:list Elenca tutte le istanze di database per questo progetto. Accetta l'opzione --location per elencare i database in una regione specificata. Per i nomi delle regioni da utilizzare con questa opzione, consulta Selezionare le località per il progetto.
database:profile Crea un profilo delle operazioni nel database del progetto attivo. Per maggiori dettagli, consulta i tipi di operazioni Realtime Database.
database:push Invia nuovi dati a un elenco in una posizione specificata nel database del progetto attivo. Riceve input da un file, da STDIN o da un argomento della riga di comando.
database:remove Consente di eliminare tutti i dati in una posizione specificata nel database del progetto attivo.
database:set Sostituisce tutti i dati in una posizione specificata nel database del progetto attivo. Riceve input da un file, da STDIN o da un argomento della riga di comando.
database:update Esegue un aggiornamento parziale in una posizione specificata nel database del progetto attivo. Riceve input da un file, da STDIN o da un argomento della riga di comando.

Remote Config comandi

Comando Descrizione
remoteconfig:versions:list \
--limit NUMBER_OF_VERSIONS
Elenca le dieci versioni più recenti del modello. Specifica 0 per restituire tutte le versioni esistenti oppure, facoltativamente, passa l'opzione --limit per limitare il numero di versioni restituite.
remoteconfig:get \
--v, version_number VERSION_NUMBER
--o, output FILENAME
Recupera il modello in base alla versione (per impostazione predefinita è la versione più recente) e genera i gruppi di parametri, i parametri, i nomi delle condizioni e la versione in una tabella. Se vuoi, puoi scrivere l'output in un file specificato con -o, FILENAME.
remoteconfig:rollback \
--v, version_number VERSION_NUMBER
--force
Esegue il rollback del modello Remote Config a un numero di versione precedente specificato o imposta come valore predefinito la versione immediatamente precedente (versione corrente -1). A meno che non venga passato --force, viene richiesto S/N prima di procedere con il rollback.