2016-05-26 8 views
44

Sto considerando usando Firebase come MBaaS, tuttavia, non sono riuscito a trovare alcuna soluzione affidabile per il seguente problema:separata dev e prod ambiente Firebase

Vorrei istituire due dell'ambiente Firebase separati, uno per lo sviluppo e la uno per la produzione, ma non voglio fare una copia manuale delle funzionalità (ad esempio configurazione della configurazione remota, regole di notifica, ecc.) tra lo sviluppo e l'ambiente di produzione.

C'è qualche strumento o metodo su cui posso fare affidamento? Configurare da remoto le regole di configurazione o notifica remote può essere un'attività scoraggiante e troppo rischiosa.

Qualche suggerimento? C'è un approccio migliore rispetto ad avere due ambienti separati?

+1

sarebbe bello avere questo come una funzione! – Patrick

+2

https://firebase.googleblog.com/2016/07/deploy-to-multiple-environments-with.html – Timmerz

+0

@Timmerz Vedi prima risposta: rilevante solo per l'hosting e il database, ma non per altre funzionalità. – racs

risposta

19

Attualmente non sto utilizzando Firebase, ma lo considero come te. Sembra che la strada da percorrere sia creare un progetto completamente separato sulla console. C'è stato un post sul blog che lo consigliava sul vecchio sito Firebase, sembra però essere rimosso. https://web.archive.org/web/20160310115701/https://www.firebase.com/blog/2015-10-29-managing-development-environments.html

Anche questa discussione raccomandando stesso: https://groups.google.com/forum/#!msg/firebase-talk/L7ajIJoHPcA/7dsNUTDlyRYJ

+2

Grazie per la risposta. È probabile che avere due progetti separati sia l'unica opzione. Tuttavia, copiare i dati tra loro è al massimo complicato. Mi chiedo se Firebase Tools possa copiare regole, setup del pubblico, ecc. Mi sembra che si occupi solo delle operazioni legate al database: https://github.com/firebase/firebase-tools – racs

+0

Finora la mia conclusione è la stessa di il tuo: due progetti separati sono la soluzione, anche se è scomodo: non ci sono metodi semplici per spostare i dati tra i progetti. – racs

+1

Non sei sicuro di averlo visto, ma puoi eseguire il tuo dev su un server firebase: https://firebase.googleblog.com/2015/04/end-to-end-testing-with-firebase-server_16. html – krico

12

Se si utilizza Firebase-tools c'è un comando firebase use che consente di impostare up che si proiettare sta utilizzando per firebase deploy

firebase use --add si apre una lista dei tuoi progetti, selezionane uno e ti chiederà un alias. Da lì puoi firebase use alias e firebase deploy spingerà a quel progetto.

Nel mio uso personale, ho my-app e my-app-dev come progetti nella console Firebase.

+1

Per quanto ho capito gli strumenti di Firebase sono utili per la distribuzione di file e database ospitati, ma non fa nulla con database, analisi o configurazione remota. O mi sta sfuggendo qualcosa? – racs

+0

@racs sembra che questo sia recente, ma sto per iniziare a provare a utilizzare il cli per il seeding dei dati/la manutenzione dei dati sulla mia istanza di sviluppo: https://firebase.googleblog.com/2015/11/the-firebase -cli-now-with-database_82.html – Chris

+0

@chris grazie, è un inizio almeno. Ma sembra una cosa piuttosto arcana da fare. In bocca al lupo! – racs

3

This blogpost descrive un approccio molto semplice con un tipo di build di debug e release.

In poche parole:

  • Creare una nuova App su Firebase per ogni tipo di costruzione utilizzando diversi suffisso applicazione id.
  • Configura il tuo progetto Android con l'ultimo file JSON.
  • Utilizzando applicationIdSuffix, modificare l'ID applicazione in modo che corrisponda alle diverse app su Firebase in base al tipo di build.

=> vedere il blogpost per una descrizione dettagliata.

Se si desidera utilizzare diversi sapori di compilazione, leggere questo esteso blogpost dal blog ufficiale di Firebase. Contiene molte informazioni preziose.

Spero che questo aiuti!

+0

Grazie per la risposta.Sono stato in grado di configurare diverse app, ma sto ancora cercando un metodo per copiare varie impostazioni dall'app di sviluppo FB alla app prod FB come ho chiesto nella domanda. (Ad esempio, configurazione remota o impostazioni del pubblico.) – racs

+0

Si noti che questo crea due app all'interno dello stesso progetto, quindi si separeranno alcuni servizi come l'analisi ma il database sarà condiviso quindi non è una vera separazione degli ambienti come spiegato qui https://firebase.googleblog.com/2016/08/organizing-your-firebase-enabled-android-app-builds.html – AntPachon

2

Avrete bisogno di gestire diversi tipi di build

Seguire questo 1.First, creare un nuovo progetto a Firebase console, nome id come YourAppName-DEV

2.Click "Aggiungi android app" pulsante e crea una nuova app. Chiamalo com.yourapp.debug, ad esempio. Nuovi servizi di google.il file JSON sarà scaricato automaticamente

3.Under vostra directory src progetto di creare nuova directory con il nome "debug" e copiare nuovo file di google-services.json qui

4.In vostro livello build.gradle modulo aggiungere questo

debug { 
     applicationIdSuffix ".debug" 
    } 

Ora, quando si costruisce una build di debug google-services.json dalla cartella "debug" saranno utilizzati e quando si costruirà nella modalità di rilascio google-services.json dalla directory principale del modulo sarà considerata.

Problemi correlati