如何从Firebase CLI切换应用程序?


97

这似乎很容易做到,但是由于任何原因,我都被击败了。

我正在尝试使用firebase-tools CLI与我的数据库进行交互。我可以轻松登录,输入时firebase list,我会得到所有当前应用程序的列表。它还会告诉我当前连接到哪个应用程序。

我的问题是,我想连接到其他应用程序之一。我在暂存应用程序上运行查询,并且需要在生产应用程序上运行查询。我可以在列表中看到生产应用程序,但是找不到任何切换到该应用程序的方法。

有什么想法吗?

Answers:



26

我宁愿使用脚本。考虑这样的项目结构:

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

转到.firebaserc并遵循下一个示例

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

然后转到package.json并添加以下脚本(changeToProdchangeToDev)。

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

如果您的IDE支持npm脚本,则可以使用IDE UI来运行它们,否则可以使用命令控制台来运行它们。确保您位于functions文件夹中。

npm run-script changeToProd

您可以通过从终端运行以下命令来验证当前项目,或者像我们刚才那样将其添加到脚本中

firebase use

欢迎,我的方法旨在与团队中的其他成员共享:)
Cutiko

16

在您运行的目录中firebase list,将存在一个名为的文件firebase.json。如果在文本编辑器中打开该应用程序,则将在其中看到应用程序名称。您可以在那里更改或删除firebase.json以更改应用程序。

或省去编辑文本文件的麻烦,并按照Jason所说的做:use firebase init


1
现在有变化吗?因为我无法找到firebase.json应用程序名称,但可以在.firebaserc找到它....欣赏澄清...
阿布舍克

1
该项目的名称确实是.firebaserc现在。
弗兰克·凡·普菲伦

2
可能是错误的,但这似乎并不能切换数据库。部署将部署到“当前”项目,但它似乎仍会从原始数据库中提取数据。如果您要使用它来将生产环境与暂存环境分开,那么该死的做法是非常危险的。希望没有人会丢失其产品数据。:(
恩里克·里巴斯

1
我遇到了@Enric所描述的关于在另一个项目上时访问默认数据库的相同问题。有什么方法可以检测客户端正在使用哪个项目,以便我可以更改配置以适当地初始化应用程序?
Zectbumo

确保更改firebaseConfig`// // Web应用程序的Firebase配置var firebaseConfig = {apiKey:“ api-key”,authDomain:“ new-project.firebaseapp.com”,databaseURL:“ https:/new-project.firebaseio.com ;//初始化Firebase`
Sultanmyrza Kasymbekov

8

如果您在Windows上使用Node.js,答案应该是

firebase use <project_id>

但没有<>

firebase use chat-app-2a150

您可以使用以下代码查看所有项目,以选择要使用的正确项目ID。

firebase projects:list

3

您可以只使用命令行开关

--project=my-firebase-project

2

2020年的答案:

官方推荐的方式是使用“别名”:

在中.firebaserc,设置不同的项目ID:

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

然后,您可以执行firebase use testingfirebase use production在项目之间切换。

请注意,切换项目不会创建任何git diff,只需在本地计算机中记住即可。要查看当前正在使用哪个项目,请运行firebase use

如果您想更改项目ID而又不对项目所有者进行更改.firebaserc,请firebase use my-project-id按照接受的答案在本地进行操作。另一方面,如果您是项目所有者,并且希望其他人使用自己的项目ID,则应添加.firebaserc到中.gitignore


0

要更改Firebase应用程序目标项目,可以输入“ firebase use myProjectName”。我还使用上面的答案“ firebase列表”来检查我拥有的项目(在我使用angular 7 app的firebase cli 7.4中为我工作)


0

@cutiko的答案

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 获取自定义配置环境

.firebaserc

{
  "projects": {
    "default":"{project-dev-id}",
    "prod": "{project-prod-id}"
  }
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.