Per le app di produzione, devi configurare un flusso di lavoro di sviluppo chiaro, soprattutto se più persone lavorano alla tua app. Un flusso di lavoro di sviluppo in genere prevede la configurazione e la gestione di più ambienti.
Firebase offre vari livelli di supporto per i flussi di lavoro degli sviluppatori e gli ambienti costituenti. Dopo aver acquisito familiarità con i termini e le ipotesi del flusso di lavoro degli sviluppatori in questa pagina, consulta le nostre best practice generali e linee guida generali per la sicurezza per la configurazione di un progetto Firebase e delle tue app.
Informazioni sugli ambienti
Nello sviluppo software, un ambiente è tutto l'hardware e il software necessari per eseguire un'istanza di un'applicazione o di un sistema di applicazioni.
Una serie di ambienti fornisce l'isolamento per lo sviluppo e il test del software senza influire sugli utenti. Come mostrato nel diagramma di seguito, gli ambienti a livello generale sono considerati _pre-produzione_ o _produzione_ e puoi avere tutti gli ambienti di pre-produzione di cui hai bisogno. Il diagramma descrive anche le pratiche e le funzionalità comuni associate a ogni tipo di ambiente.
La procedura di avanzamento di una funzionalità o di una release attraverso questi ambienti fino alla produzione è chiamata pipeline di deployment.

Tipi di ambienti
Un ambiente è composto dall'infrastruttura sottostante necessaria per eseguire e supportare l'applicazione, il codice e i dati. Espandi ognuno dei seguenti termini per esaminare le descrizioni di alcuni ambienti comuni, inclusi suggerimenti sui tipi di dati utilizzati in ogni tipo di ambiente.
Ambienti di sviluppo (dev)
Ogni sviluppatore ha bisogno di un ambiente di sviluppo, un luogo sicuro e isolato per testare le modifiche durante la creazione. Idealmente, ogni sviluppatore del tuo team ha accesso al proprio ambiente di sviluppo. Inoltre, se l'ambiente di sviluppo è un'istanza locale, uno sviluppatore può eseguire iterazioni molto più velocemente.
I dati in un ambiente di sviluppo vengono inizializzati con dati che in genere assomigliano ai dati di produzione, ma non devono mai contenere i dati di utenti reali. Potrebbero anche contenere dati che hanno causato bug in passato, come stringhe molto lunghe.
Ambienti di test e QA
Se hai test automatizzati, hai bisogno di un ambiente in cui eseguirli e devi reimpostare i dati ogni volta che crei l'ambiente di test.
Se hai ingegneri QA, potrebbero aver bisogno di un ambiente che utilizzano tutti o di ambienti individuali per testare un nuovo candidato per la release.
I dati negli ambienti di test e QA vengono inizializzati con dati di qualità che in genere sono rappresentativi dei dati di produzione, insieme a dati che rappresentano casi limite ed esempi di dati che hanno causato bug in passato.
Ambienti di gestione temporanea
Per test realistici del funzionamento di una release in produzione, hai bisogno di un ambiente di gestione temporanea che imiti l'infrastruttura di produzione il più fedelmente possibile. È comune avere più istanze di gestione temporanea se devi testare integrazioni specifiche in isolamento.
Di seguito sono riportate le differenze comuni tra la gestione temporanea e la produzione:
La gestione temporanea potrebbe non avere alcune funzionalità o integrazioni che potrebbero causare effetti collaterali. Ad esempio, la gestione temporanea potrebbe essere configurata in modo da non inviare email.
La gestione temporanea potrebbe avere dati anonimizzati; i dati possono essere falsi, ma devono essere realistici. Poiché la gestione temporanea è un luogo in cui eseguire il debug dei problemi in sicurezza, potresti concedere un accesso più ampio ai dati di gestione temporanea rispetto ai dati di produzione. Pertanto, per proteggere la privacy degli utenti, non devi utilizzare i dati utente effettivi nella gestione temporanea.
Ambienti di produzione (prod)
Per ogni applicazione che gestisci, hai bisogno di un singolo ambiente di produzione. Questa è l'istanza con cui interagiscono gli utenti.
A differenza degli altri ambienti in cui puoi modificare, eliminare e/o ricreare i dati, i dati nell'ambiente di produzione sono molto importanti; la perdita o la modifica dei dati di produzione influirà direttamente sugli utenti.
Nella console Firebase, ti consigliamo di taggare il progetto Firebase associato al tuo ambiente di produzione come "produzione" tipo di ambiente. Questo tag può aiutarti a ricordare a te e ai tuoi colleghi che eventuali modifiche potrebbero influire sulle app di produzione associate e sui relativi dati.
Passaggi successivi
Consulta le nostre best practice generali per la configurazione dei progetti Firebase. Questa guida risponde alle domande sulla gerarchia dei progetti Firebase, su come registrare le varianti dell'app e sul multi-tenancy.
Consulta le linee guida generali per la sicurezza per i diversi ambienti. Devi assicurarti che ogni ambiente e i relativi dati siano sicuri.
Consulta la checklist di lancio di Firebase.