269 votes

Environnement Firebase séparé pour le développement et la production.

J'envisage d'utiliser Firebase comme MBaaS, mais je n'ai pas trouvé de solution fiable au problème suivant :

Je voudrais mettre en place deux environnements Firebase distincts, l'un pour le développement et l'autre pour la production, mais je ne veux pas faire une copie manuelle des fonctionnalités (par exemple, la configuration à distance, les règles de notification, etc.) entre l'environnement de développement et de production.

Existe-t-il un outil ou une méthode sur lequel je peux compter ? La mise en place d'une configuration à distance ou de règles de notification à partir de zéro peut être une tâche ardue et trop risquée.

Des suggestions ? Existe-t-il une meilleure approche que de disposer de deux environnements distincts ?

Avant de poster une autre réponse à la question qui explique comment configurer des comptes Firebase séparés : ce n'est pas la question, relisez-la. La question est : comment TRANSFÉRER les changements entre les comptes séparés de dev et de prod ou une meilleure solution que la copie manuelle entre eux.

5 votes

Ce serait génial d'avoir cette fonctionnalité !

4 votes

0 votes

@Timmerz Voir première réponse : ne concerne que l'hébergement et la base de données, mais pas les autres fonctionnalités.

80voto

Lunchbox Points 469

Si vous utilisez firebase-tools, il existe une commande firebase use qui vous permet de définir quel projet vous utilisez pour firebase deploy

firebase use --add fera apparaître une liste de vos projets, sélectionnez-en un et il vous demandera un alias. À partir de là, vous pouvez firebase use alias et firebase deploy va pousser vers ce projet.

Dans mon utilisation personnelle, j'ai mon-app et mon-app-dev comme projets dans la console Firebase.

2 votes

D'après ce que j'ai compris, les outils Firebase sont utiles pour déployer les fichiers hébergés et la base de données, mais ils ne font rien avec la base de données, les analyses ou la configuration à distance. Ou est-ce que quelque chose m'échappe ?

0 votes

@racs il semble que ce soit récent, mais je suis sur le point de commencer à essayer d'utiliser la cli pour l'ensemencement des données / la maintenance des données sur mon instance de développement : firebase.googleblog.com/2015/11/

0 votes

@chris merci, c'est un début au moins. Mais cela semble être une chose plutôt obscure à faire. Bonne chance !

28voto

Patrick Points 2766

Je n'utilise pas actuellement Firebase, mais je l'envisage comme vous. Il semble que la solution consiste à créer un projet complètement séparé sur la console. Il y avait un article de blog qui recommandait cela sur l'ancien site de Firebase, mais il semble qu'il ait été supprimé maintenant. https://web.archive.org/web/20160310115701/https://www.firebase.com/blog/2015-10-29-managing-development-environments.html

Cette discussion recommande également la même chose : https://groups.google.com/forum/#!msg/firebase-talk/L7ajIJoHPcA/7dsNUTDlyRYJ

3 votes

Merci pour la réponse. Avoir deux projets séparés est très probablement la seule option. Cependant, la copie des données entre eux est au mieux compliquée. Je me demande si Firebase Tools pourrait copier les règles, la configuration de l'audience, etc. Il me semble qu'il ne traite que des opérations liées à la base de données : github.com/firebase/firebase-tools

0 votes

Jusqu'à présent, ma conclusion est la même que la vôtre : deux projets distincts est la solution, même si elle est peu pratique : il n'y a pas de méthodes faciles pour déplacer les données entre les projets.

2 votes

Je ne sais pas si vous l'avez vu, mais vous pouvez exécuter votre dev contre un serveur firebase : firebase.googleblog.com/2015/04/

22voto

Kunal Khaire Points 57

La façon dont je l'ai fait :

  1. J'avais 2 projets sur firebase- un pour DEV l'autre pour PROD
  2. Localement, mon application avait également 2 branches - une nommée DEV, l'autre nommée PROD.
  3. Dans ma branche DEV, j'ai toujours le fichier JSON du projet firebase DEV et de même pour PROD.

De cette façon, je ne suis pas obligé de maintenir mes JSONs.

2 votes

Je comprends, mais il n'y a pas de solution générique à la question posée dans la dernière version de Firebase. Vous devez jouer avec les options actuelles et en tirer une meilleure pratique. Il se peut que ma réponse n'aille pas dans ce sens, mais je veux juste aider le demandeur avec mon point de vue.

12voto

user2768515 Points 19

Vous devrez gérer différents types de constructions

Suivre cette

  1. D'abord, créez un nouveau projet dans la console Firebase, nommez l'id comme YOURAPPNAME-DEV.

  2. Cliquez sur le bouton "Add Android app" et créez une nouvelle application. Nommez-la com.yourapp.debug, par exemple. Le nouveau fichier google-services.json sera automatiquement téléchargé

  3. Sous le répertoire src de votre projet, créez un nouveau répertoire avec le nom "debug" et copiez le nouveau fichier google-services.json ici.

  4. Dans votre build.gradle au niveau du module, ajoutez ceci

    debug {
            applicationIdSuffix ".debug"
        }

Maintenant, lorsque vous construisez un build en mode debug, google-services.json du dossier "debug" sera utilisé et lorsque vous construirez en mode release, google-services.json du répertoire Root du module sera considéré.

1 votes

Au cas où quelqu'un aurait besoin de la documentation officielle, le plugin Gradle pour les services Google sait qu'il faut chercher le fichier google-services.json dans le sous-répertoire de src pour le buildType comme expliqué ici developers.google.com/Android/guides/

8voto

lukle Points 2935

Ce billet de blog décrit une approche très simple avec un type de construction debug et release.

En un mot :

  • Créez une nouvelle application sur Firebase pour chaque type de construction en utilisant un suffixe d'identification d'application différent.
  • Configurez votre projet Android avec le dernier fichier JSON.
  • À l'aide de applicationIdSuffix, modifiez l'identifiant de l'application pour qu'il corresponde aux différentes applications de Firebase en fonction du type de construction.

\=> voir le blogpost pour une description détaillée.

Si vous voulez utiliser différentes saveurs de construction, lisez ce document détaillé blogpost du blog officiel de firebase. Il contient beaucoup d'informations précieuses.

J'espère que cela vous aidera !

0 votes

Merci pour votre réponse. J'ai pu configurer différentes applications, mais je cherche toujours une méthode pour copier les différentes configurations de l'application FB dev à l'application FB prod comme je l'ai demandé dans la question. (Par exemple, la configuration à distance ou les paramètres d'audience).

3 votes

Veuillez noter que cela crée deux applications au sein du même projet. Par conséquent, vous séparerez certains services tels que les analyses, mais la base de données sera partagée et il ne s'agit pas d'une véritable séparation des environnements comme expliqué ici. firebase.googleblog.com/2016/08/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X