¿Cómo cambio de aplicación desde firebase cli?

101

Esto parece algo que debería ser bastante fácil de hacer, pero por alguna razón, estoy siendo derrotado.

Estoy tratando de usar la CLI de firebase-tools para interactuar con mi base de datos. Puedo iniciar sesión sin ningún problema, y ​​cuando escribo firebase list, obtengo una lista de todas mis aplicaciones actuales. También me dice a qué aplicación estoy conectado actualmente.

Mi problema es que quiero conectarme a una de las otras aplicaciones. Estoy ejecutando consultas en mi aplicación de ensayo y necesito ejecutarlas en mi aplicación de producción. Puedo ver la aplicación de producción en la lista, pero no encuentro ninguna forma de cambiar a esa aplicación.

Pensamientos

wvm2008
fuente

Respuestas:

27

Prefiero usar scripts. Considere una estructura de proyecto como esta:

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

Ir .firebasercy seguir el siguiente ejemplo

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

Luego, vaya ay package.jsonagregue los siguientes scripts ( changeToProd, y changeToDev).

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

Si su IDE admite scripts npm, puede ejecutarlos usando la IU del IDE; de lo contrario, puede ejecutarlo usando la consola de comandos. Asegúrate de estar dentro de la functionscarpeta.

npm run-script changeToProd

Puede verificar su proyecto actual ejecutando el siguiente comando desde la terminal o agregando a los scripts como acabamos de hacer

firebase use
cutiko
fuente
Bienvenido, mi enfoque está destinado a ser compartido con el resto del equipo :)
cutiko
17

En el directorio donde se ejecuta firebase list, habrá un archivo llamado firebase.json. Si lo abre en un editor de texto, verá el nombre de la aplicación allí. Puede cambiarlo allí o eliminarlo firebase.jsonpara cambiar la aplicación.

O ahórrese la molestia de editar un archivo de texto y haga lo que dice Jason: use firebase init.

Frank van Puffelen
fuente
1
¿Hay algún cambio ahora? Porque no puedo encontrar el nombre de la aplicación en firebase.json pero puedo encontrarlo en .firebaserc ... Aprecio la aclaración ...
Abhishek
1
De hecho, el nombre del proyecto está .firebasercahora.
Frank van Puffelen
2
Puede que esté mal, pero esto no parece cambiar la base de datos. La implementación se implementará en el proyecto "actual", pero parece que aún extrae datos de la base de datos original. Bastante peligroso si vas a usar esto para separar la producción de los entornos de ensayo. Espero que nadie pierda sus datos de producción. :(
Enric Ribas
1
Tengo el mismo problema que @Enric describió sobre el acceso a la base de datos predeterminada mientras estoy en un proyecto diferente. ¿Hay alguna forma de detectar qué proyecto se está utilizando en el lado del cliente para que pueda cambiar la configuración para inicializar la aplicación de manera adecuada?
Zectbumo
asegúrese de cambiar firebaseConfig `// La configuración de Firebase de su aplicación 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
11

Si está utilizando Node.js en Windows, su respuesta debería ser

firebase use <project_id>

pero sin el <> por ejemplo

firebase use chat-app-2a150

Puede usar el siguiente código para ver todos sus proyectos para elegir el ID de proyecto correcto para usar

firebase projects:list
Meshach Koech
fuente
6

Respuesta en 2020:

La forma oficialmente recomendada es utilizar "alias":

En su .firebaserc, configure los diferentes ID de proyecto:

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

Entonces puedes hacer firebase use testingo firebase use productioncambiar entre proyectos.

Tenga en cuenta que cambiar de proyecto no creará ningún git diff, simplemente se recuerda en su máquina local. Para ver qué proyecto se está utilizando actualmente, ejecute firebase use.

Si desea cambiar el ID del proyecto sin realizar cambios en el propietario del proyecto .firebaserc, hágalo firebase use my-project-idlocalmente como se menciona en la respuesta aceptada. Por otro lado, si usted es el propietario del proyecto y desea que otros utilicen sus propios identificadores de proyecto, se debe añadir .firebasercen .gitignore.

ZYinMD
fuente
3

puedes usar un interruptor de línea de comando

--project=my-firebase-project
Ron Chan
fuente
1

Adición la respuesta de @ cutiko

En 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 obtener un entorno de configuración personalizado

En .firebaserc

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

para cambiar el proyecto de destino de la aplicación firebase, puede escribir "firebase use myProjectName". También utilicé las respuestas anteriores "lista de base de fuego" para verificar qué proyecto tengo (funciona para mí en firebase cli 7.4 con la aplicación angular 7)

yehonatan yehezkel
fuente