Como faço para alternar aplicativos do firebase cli?

97

Isso parece algo que deve ser muito fácil de fazer, mas por alguma razão, estou sendo derrotado.

Estou tentando usar a CLI firebase-tools para interagir com meu banco de dados. Consigo fazer o login sem problemas e, quando digito firebase list, recebo uma lista de todos os meus aplicativos atuais. Também me diz a qual aplicativo estou conectado no momento.

Meu problema é que quero me conectar a um dos outros aplicativos. Estou executando consultas em meu aplicativo de teste e preciso executá-las em meu aplicativo de produção. Posso ver o aplicativo de produção na lista, mas não estou encontrando nenhuma maneira de alternar para esse aplicativo.

Pensamentos?

wvm2008
fonte

Respostas:

26

Prefiro usar scripts. Considere uma estrutura de projeto como esta:

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

.firebaserce siga o próximo exemplo

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

Em seguida, vá para package.jsone adicione os seguintes scripts ( changeToProd, e changeToDev).

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

Se o seu IDE suportar scripts npm, você pode executá-los usando a IU do IDE, caso contrário, pode ser executado usando o console de comando. Verifique se você está dentro da functionspasta.

npm run-script changeToProd

Você pode verificar o seu projeto atual executando o seguinte comando no terminal ou adicionado aos scripts como acabamos de fazer

firebase use
cutiko
fonte
Bem-vindo, minha abordagem deve ser compartilhada com o resto da equipe :)
cutiko
16

No diretório onde você executa firebase list, haverá um arquivo chamado firebase.json. Se você abrir em um editor de texto, verá o nome do aplicativo lá. Você pode alterá-lo lá ou excluir firebase.jsonpara alterar o aplicativo.

Ou evite o incômodo de editar um arquivo de texto e faça o que Jason diz: use firebase init.

Frank van Puffelen
fonte
1
Existe uma mudança agora? Porque não consigo encontrar o nome do aplicativo em firebase.json, mas posso encontrá-lo em .firebaserc ... Agradeço o esclarecimento ...
Abhishek
1
O nome do projeto está de fato .firebasercagora.
Frank van Puffelen
2
Pode estar errado, mas isso não parece mudar o banco de dados. A implantação irá implantar no projeto "atual", mas parece ainda extrair dados do banco de dados original. Muito perigoso se você for usar isso para separar a produção dos ambientes de preparação. Espero que ninguém perca seus dados de produção. :(
Enric Ribas
1
Estou tendo o mesmo problema que @Enric descreveu sobre como acessar o banco de dados padrão enquanto estou em um projeto diferente. Existe alguma maneira de detectar qual projeto está sendo usado no lado do cliente para que eu possa alterar a configuração para inicializar o aplicativo adequadamente?
Zectbumo de
certifique-se de alterar firebaseConfig `// a configuração do Firebase do seu aplicativo da web var firebaseConfig = {apiKey:" api-key ", authDomain:" new-project.firebaseapp.com ", databaseURL:" https: /new-project.firebaseio.com ", projectId:" new-project-id ", storageBucket:" xxxxxxxxxxx.appspot.com ", messagingSenderId:" xxxxxx ", appId:" xxxxxxxxxx ", measureId:" xxxxxxxx "}; // Inicializar Firebase`
Sultanmyrza Kasymbekov
8

Se você estiver usando Node.js no Windows, sua resposta deve ser

firebase use <project_id>

mas sem o <> por exemplo

firebase use chat-app-2a150

Você pode usar o seguinte código para visualizar todos os seus projetos, a fim de escolher o ID de projeto correto para usar

firebase projects:list
Meshach Koech
fonte
3

você pode apenas usar uma opção de linha de comando

--project=my-firebase-project
Ron Chan
fonte
2

Resposta em 2020:

A forma oficialmente recomendada é usar "alias":

Em seu .firebaserc, defina os diferentes IDs de projeto:

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

Então você pode fazer firebase use testingou firebase use productionalternar entre projetos.

Observe que a troca de projetos não criará nenhum git diff, ela é simplesmente lembrada em sua máquina local. Para ver qual projeto está sendo usado atualmente, execute firebase use.

Se você quiser alterar o ID do projeto sem comprometer as alterações para o proprietário do projeto .firebaserc, faça firebase use my-project-idlocalmente conforme mencionado na resposta aceita. Por outro lado, se você é o dono do projeto e quer que os outros usam seus próprios IDs de projeto, você deve adicionar .firebasercem .gitignore.

ZYinMD
fonte
0

para alterar o projeto de destino do aplicativo firebase, você pode digitar "firebase use myProjectName". Eu também usei as respostas acima "firebase list" para verificar qual projeto eu tenho (funcione para mim no firebase cli 7.4 com o aplicativo angular 7)

yehonatan yehezkel
fonte
0

Resposta da adição @ cutiko

No 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 para obter um ambiente de configuração personalizado

No .firebaserc

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