Firebase CLI è uno strumento che ti consente di gestire e configurare i prodotti e i servizi Firebase dalla riga di comando.
La CLI fornisce comandi che possono essere utilizzati per eseguire una serie di attività di Data Connect, come creare un nuovo progetto Data Connect, inizializzare una directory di lavoro locale corrispondente, configurare l'emulatore Data Connect, elencare le risorse Data Connect, generare SDK client e altro ancora.
Comandi di configurazione
Aggiungi Data Connect a un progetto Firebase
init Firebase
Utilizza firebase init
per configurare una nuova configurazione del progetto locale. Questo flusso di lavoro
crea o aggiorna i file di configurazione di Firebase nella
directory.
firebase init
Il flusso firebase init
ti guida nella configurazione di un servizio e di un database, nonché, facoltativamente, nell'installazione dell'emulatore Data Connect e nella configurazione degli SDK generati.
Configurazione del servizio e del database
Se selezioni dataconnect
per la configurazione del prodotto, la CLI ti chiede un nuovo nome e una nuova posizione del servizio e se collegare un'istanza Cloud SQL per PostgreSQL esistente o crearne una nuova.
Se è collegata un'istanza esistente, la CLI controlla la presenza di impostazioni compatibili, come l'autenticazione IAM e gli indirizzi IP pubblici.
Configurazione di Local Emulator Suite
Il flusso dell'interfaccia a riga di comando offre la possibilità di configurare gli emulatori, incluso l'emulatore Data Connect.
Data Connect comandi dell'emulatore
Avvia l'emulatore Data Connect
emulators:start/exec
firebase emulators:start/exec
Utilizza la versione Local Emulator Suite dell'emulatore Data Connect
in modalità interattiva con start
o in modalità non interattiva basata su script con
exec
.
Comandi per la gestione di schemi e connettori
Questa sezione contiene informazioni di riferimento dell'interfaccia a riga di comando per i comandi che utilizzi per gestire schemi e connettori.
Per i casi d'uso e le pratiche consigliate relative a questi comandi, consulta la guida alla gestione di schemi e connettori.
Esegui il deployment delle risorse dello schema e dei connettori
deployment
firebase deploy
Questo comando esegue il deployment delle risorse per i servizi Data Connect indicizzati in firebase.json. Se necessario, viene eseguita una migrazione dello schema.
Comando | Descrizione | |
---|---|---|
firebase deploy |
Bandiera | Descrizione |
–-only dataconnect |
Esegui il deployment di schemi e connettori per tutti i servizi Data Connect per questo progetto, ma non per altre risorse dei prodotti Firebase. | |
–-only dataconnect:serviceId |
Esegui il deployment dello schema e dei connettori per il servizio Data Connect specificato. | |
–-only dataconnect:serviceId:connectorId |
Esegui il deployment di un singolo connettore per il servizio Data Connect specificato. | |
–-only dataconnect:serviceId:schema |
Esegui il deployment dello schema per il servizio Data Connect specificato. |
Con i flag –-only
, puoi passare valori separati da virgole per eseguire il deployment di qualsiasi sottoinsieme di risorse desiderato.
firebase deploy --only dataconnect:service1:schema,dataconnect:service2
Elenca i servizi, gli schemi e i connettori Data Connect
dataconnect:servizi:elenco
firebase dataconnect:services:list
Questo comando stampa informazioni di base su servizi, schemi e connettori impiegati in un progetto.
Confronta ed esegui la migrazione degli schemi SQL
dataconnect:sql:diff
firebase dataconnect:sql:diff
Questo comando confronta lo schema locale di un servizio con lo schema corrente del database Cloud SQL corrispondente. Stampa i comandi che verranno eseguiti per eseguire la migrazione del database al nuovo schema.
Comando | Descrizione | |
---|---|---|
firebase dataconnect:sql:diff |
Flag/parametro | Descrizione |
ID servizio |
Specifica il servizio. Se omesso, stampa la differenza per tutti i servizi in firebase.json. |
dataconnect:sql:migrazione
firebase dataconnect:sql:migrate
Questo comando applica le modifiche allo schema locali al database Cloud SQL di un servizio.
Quando configuri un nuovo progetto Data Connect locale, con il file dataconnect.yaml
predefinito, il comportamento del comando dataconect:sql:migrate
consiste nel richiedere eventuali modifiche necessarie e quindi richiedere eventuali modifiche facoltative, prima di eseguire le modifiche. Puoi modificare questo comportamento in modo da includere o ignorare sempre le modifiche facoltative aggiornando la configurazione di dataconnect.yaml
, come descritto in Eseguire la migrazione di uno schema in modalità rigorosa o compatibile.
Negli ambienti interattivi, l'interfaccia a riga di comando mostra ogni istruzione SQL di migrazione
(e se è distruttiva) e chiede le modifiche da applicare.
Il passaggio del flag --force
è equivalente all'accettazione di tutti i prompt.
In ambienti non interattivi:
- senza
--force
, vengono apportate solo modifiche non distruttive. Se sono presenti modifiche dannose, l'interfaccia a riga di comando viene interrotta senza apportare modifiche. - con
--force
, vengono apportate tutte le modifiche. Se sono incluse modifiche dannose, queste vengono stampate e ti viene chiesto se vuoi continuare, a meno che non venga fornito il flag--force
.
Comando | Descrizione | |
---|---|---|
firebase dataconnect:sql:migrate |
Bandiera | Descrizione |
serviceId |
Esegui la migrazione del database per il servizio specificato. Il serviceId viene dedotto se il progetto ha un solo servizio. | |
–-forza |
Accetta automaticamente le richieste. |
Come per altri flag --only
, puoi fornire più servizi separati da virgole.
Eseguire la migrazione di uno schema in modalità rigorosa o compatibile
Le migrazioni dello schema Data Connect hanno due diverse modalità di convalida dello schema: rigorosa e compatibile. La convalida in modalità rigorosa richiede che lo schema del database corrisponda esattamente a quello dell'applicazione prima di poter eseguire il deployment dello schema dell'applicazione. La convalida della modalità compatibile richiede che lo schema del database sia compatibile con lo schema dell'applicazione, il che significa che gli elementi del database non utilizzati dallo schema dell'applicazione vengono lasciati invariati.
Queste modalità di convalida dello schema e le best practice per la migrazione dello schema sono illustrate nella guida alla gestione di schemi e connettori
La modalità di convalida è definita utilizzando la chiave schemaValidation
nel
dataconnect.yaml
file. Se schemaValidation
non è specificato, la CLI applica le modifiche compatibili e ti chiede conferma prima di eseguire eventuali modifiche rigorose. Consulta la guida di riferimento alla configurazione.
Comandi SDK
Genera SDK
dataconnect:sdk:generate
firebase dataconnect:sdk:generate
Questo comando genera gli SDK con tipi dichiarati in connector.yaml.
Consulta anche le guide all'utilizzo degli SDK web, degli SDK per Android e degli SDK per iOS.
Comando | Descrizione | |
---|---|---|
firebase dataconnect:sdk:generate |
Segnala | Descrizione |
--orologio |
Mantiene in esecuzione il processo e genera nuovi SDK ogni volta che salvi
le modifiche ai file GQL dello schema e dei connettori. Se la generazione non riesce, gli errori verranno stampati su stdout, il codice generato non verrà modificato e il comando continuerà a essere eseguito. |
|
–-only connectorId:platform |
Genera SDK solo per una singola piattaforma e un singolo connettore. |
Con i flag –only
, puoi passare valori separati da virgole.
firebase dataconnect:sdk:generate –-only connector1, connector1:kotlin
Comandi di gestione di Cloud SQL
Concedi i ruoli SQL per Cloud SQL
dataconnect:sql:grant
firebase dataconnect:sql:grant
Data Connect opera sulla tua istanza PostgreSQL ospitata su Cloud SQL. In alcuni casi, potresti voler accedere direttamente al database per eseguire query o aggiornare i dati generati dalle tue app Data Connect. Per farlo, devi concedere uno dei ruoli definiti in questa sezione all'account utente o di servizio richiesto.
Per informazioni dettagliate sui ruoli concessi, consulta Ruoli utente PostgreSQL.
Ruolo | Ruolo SQL | Autorizzazioni | Utilizzo | Assegnabile |
---|---|---|---|---|
Lettore | firebasereader_<db_name>_<schema_name> |
Accesso di sola lettura al database. Può eseguire operazioni SELECT su tutte le tabelle all'interno dello schema specificato. |
Ideale per utenti o servizi che richiedono il recupero dei dati, ma non la loro modifica. | Sì |
writer | firebasewriter_<db_name>_<schema_name> |
Accesso in lettura e scrittura al database. Può eseguire operazioni SELECT , INSERT , UPDATE , DELETE e TRUNCATE su tutte le tabelle all'interno dello schema. |
Adatto a utenti o servizi che devono modificare i dati all'interno del database. | Sì |
proprietario | firebaseowner_<db_name>_<schema_name> |
Proprietario dello schema. Ha tutti i privilegi su tutte le tabelle e le sequenze nello schema. |
Questo ruolo, in combinazione con il ruolo IAM roles/cloudsql.client , concede l'autorizzazione per eseguire la migrazione sul database. Ad esempio, quando chiami firebase dataconnect:sql:migrate . |
Sì |
super user | cloudsqlsuperuser |
Ruolo super user integrato con privilegi completi sul database. Oltre alle autorizzazioni del proprietario, può creare schemi, eliminarli, installare estensioni ed eseguire qualsiasi altra attività amministrativa. Accesso nell'interfaccia a riga di comando accedendo come "firebasesuperuser". |
Obbligatorio per installare le estensioni, creare lo schema iniziale e concedere a altri utenti uno dei ruoli SQL concedibili. Se un utente non amministratore ha bisogno dei privilegi di super user, la migrazione non riuscirà e l'utente chiederà all'amministratore del database (ovvero un utente con roles/cloudsql.admin ) di eseguire i comandi SQL con privilegi. |
Concessi agli utenti con roles/cloudsql.admin e non possono essere concessi direttamente dalla CLI Firebase |
Comando | Descrizione | |
---|---|---|
firebase dataconnect:sql:grant |
Flag/parametro | Descrizione |
-R, --role ruolo |
Il ruolo SQL da concedere, uno tra proprietario, scrittore o lettore. | |
-E, --email indirizzo_email |
Indirizzo email di un utente o di un account di servizio a cui concedere il ruolo. |
Opzioni globali
Le seguenti opzioni globali si applicano a tutti i comandi:
--json
cambia l'output dell'interfaccia a riga di comando in JSON per l'analisi da parte di altri strumenti.--noninteractive
e--interactive
eseguono l'override, se necessario, del rilevamento automatico degli ambienti non TTY.