Comment puis-je changer d'application depuis Firebase cli?

97

Cela semble être quelque chose qui devrait être assez facile à faire, mais pour une raison quelconque, je suis vaincu.

J'essaye d'utiliser la CLI de firebase-tools pour interagir avec ma base de données. Je peux me connecter sans aucun problème et lorsque je tape firebase list, j'obtiens une liste de toutes mes applications actuelles. Il me dit également à quelle application je suis actuellement connecté.

Mon problème est que je souhaite me connecter à l'une des autres applications. J'exécute des requêtes sur mon application de préparation et je dois les exécuter sur mon application de production. Je peux voir l'application de production dans la liste, mais je ne trouve aucun moyen de passer à cette application.

Pensées?

wvm2008
la source

Réponses:

26

J'utilise plutôt des scripts. Considérez une structure de projet comme celle-ci:

your-project
├── .firebaserc
└── functions
   ├── package.json
   └── index.js

Allez à .firebasercet suivez l'exemple suivant

{
  "projects": {
    "default": "project-name",
    "prod": "other-name"
  }
}

Ensuite, allez dans package.jsonet ajoutez les scripts suivants ( changeToProd, et changeToDev).

{
  ...
  "scripts": {
    ...
    "changeToProd": "firebase use prod",
    "changeToDev": "firebase use default"
  },
  "dependencies": {
    ...
  },
  ...
}

Si votre IDE prend en charge les scripts npm, vous pouvez les exécuter à l'aide de l'interface utilisateur IDE, sinon il peut être exécuté à l'aide de la console de commande. Assurez-vous que vous êtes dans le functionsdossier.

npm run-script changeToProd

Vous pouvez vérifier votre projet actuel en exécutant la commande suivante à partir du terminal ou en l'ajoutant aux scripts comme nous venons de le faire

firebase use
Cutiko
la source
Bienvenue, mon approche est destinée à être partageable avec le reste de l'équipe :)
cutiko
16

Dans le répertoire où vous exécutez firebase list, il y aura un fichier appelé firebase.json. Si vous ouvrez cela dans un éditeur de texte, vous y verrez le nom de l'application. Vous pouvez le modifier ici ou le supprimer firebase.jsonpour modifier l'application.

Ou évitez les tracas liés à l'édition d'un fichier texte et faites comme Jason le dit: utilisez firebase init.

Frank van Puffelen
la source
1
Y a-t-il un changement maintenant? Parce que je ne trouve pas le nom de l'application dans firebase.json mais que je peux le trouver dans .firebaserc .... J'apprécie la clarification ...
Abhishek
1
Le nom du projet est bel et bien .firebasercmaintenant.
Frank van Puffelen
2
Cela peut être faux, mais cela ne semble pas changer la base de données. Le déploiement se déploiera sur le projet «actuel» mais il semble toujours extraire les données de la base de données d'origine. Plutôt dangereux si vous allez l'utiliser pour séparer la production des environnements de préparation. J'espère que personne ne perd ses données de prod. :(
Enric Ribas
1
J'ai le même problème que @Enric décrit concernant l'accès à la base de données par défaut tout en étant sur un projet différent. Existe-t-il un moyen de détecter quel projet est utilisé côté client afin que je puisse modifier la configuration pour initialiser l'application de manière appropriée?
Zectbumo
assurez-vous de modifier firebaseConfig `// La configuration Firebase de votre application Web var firebaseConfig = {apiKey:" api-key ", authDomain:" new-project.firebaseapp.com ", databaseURL:" https: /new-project.firebaseio.com ", projectId:" nouveau-projet-id ", storageBucket:" xxxxxxxxxxx.appspot.com ", messagingSenderId:" xxxxxx ", appId:" xxxxxxxxxx ", mesureId:" xxxxxxxx "}; // Initialiser Firebase`
Sultanmyrza Kasymbekov
8

Si vous utilisez Node.js sous Windows, votre réponse devrait être

firebase use <project_id>

mais sans le <> par exemple

firebase use chat-app-2a150

Vous pouvez utiliser le code suivant pour afficher tous vos projets afin de choisir le bon ID de projet à utiliser

firebase projects:list
Meshach Koech
la source
3

vous pouvez simplement utiliser un commutateur de ligne de commande

--project=my-firebase-project
Ron Chan
la source
2

Réponse en 2020:

La méthode officiellement recommandée consiste à utiliser "alias":

Dans votre .firebaserc, définissez les différents ID de projet:

{
  "projects": {
    "production": "my-project-id",
    "testing": "my-project-id--testing"
  }
}
// you can also interactively add them with `firebase use --add`

Ensuite, vous pouvez faire firebase use testingou firebase use productionbasculer entre les projets.

Notez que le changement de projet ne créera aucun git diff, il est simplement mémorisé dans votre machine locale. Pour voir quel projet est actuellement utilisé, exécutez firebase use.

Si vous souhaitez modifier l'ID du projet sans valider les modifications apportées au propriétaire du projet .firebaserc, procédez firebase use my-project-idlocalement comme indiqué dans la réponse acceptée. D'autre part, si vous êtes le propriétaire du projet et que vous souhaitez que d'autres utilisent leurs propres ID de projet, vous devez ajouter .firebasercà .gitignore.

ZYinMD
la source
0

pour modifier le projet de destination de l'application Firebase, vous pouvez taper "firebase use myProjectName". J'ai également utilisé les réponses ci-dessus "liste firebase" pour vérifier quel projet j'ai (fonctionne pour moi dans firebase cli 7.4 avec l'application angular 7)

yehonatan yehezkel
la source
0

Réponse de Addition @ cutiko

Dans package.json

"scripts": {
...
"prod": "echo \"Switch to Production environment\" && firebase use prod && npm run runtimeconfig",
"dev": "echo \"Switch to Development environment\" && firebase use default && npm run runtimeconfig"
...

npm run runtimeconfig pour obtenir un environnement de configuration personnalisé

Dans .firebaserc

{
  "projects": {
    "default":"{project-dev-id}",
    "prod": "{project-prod-id}"
  }
}
Giang
la source