这似乎是件很容易做到的事,但不知道为什么,我被打败了。
我正在尝试使用消防工具 CLI 与我的数据库进行交互。我能够登录没有任何麻烦,当我输入 firebase list,我得到一个列表,所有我目前的应用程序。它还能告诉我当前连接的是哪个应用程序。
firebase list
我的问题是,我想连接到其他应用程序之一。我正在我的登台应用程序上运行查询,我需要在我的生产应用程序上运行它们。我可以看到生产应用程序在列表中,但我没有找到任何方式切换到该应用程序。
有什么想法吗?
在运行 firebase list的目录中,将有一个名为 firebase.json的文件。如果您在文本编辑器中打开它,您将在其中看到应用程序名称。你可以在那里改变它或者删除 firebase.json来改变应用程序。
firebase.json
或者省去编辑文本文件的麻烦,按照 Jason 说的做: 使用 firebase init。
firebase init
在这里找到了一些有用的信息。
下面的代码适合我。
firebase use <project_id>
我更喜欢使用脚本:
your-project ├── .firebaserc └── functions ├── package.json └── index.js
转到 .firebaserc并遵循下一个示例
.firebaserc
{ "projects": { "default": "project-name", "prod": "other-name" } }
然后转到 package.json并添加以下脚本(changeToProd和 changeToDev)。
package.json
changeToProd
changeToDev
{ ... "scripts": { ... "changeToProd": "firebase use prod", "changeToDev": "firebase use default" }, "dependencies": { ... }, ... }
如果 IDE 支持 npm 脚本,则可以使用 IDE UI 运行它们,否则可以使用命令控制台运行它们。确保您在 functions文件夹内。
functions
npm run-script changeToProd
您可以通过从终端运行以下命令或像我们刚才那样添加到脚本中来验证当前项目
firebase use
您可以只使用命令行开关
--project=my-firebase-project
要更改 firebase 应用程序目标项目,可以键入“ firebase use myProjectName”。我也使用以上的答案“ Firebase 列表”来检查我有什么项目 (为我工作在 Firebase cli 7.4与角7应用程序)
如果您在 windows 上使用 Node.js,那么您的答案应该是
但是没有 < > 的例子
firebase use chat-app-2a150
可以使用以下代码查看所有项目,以选择要使用的正确项目 ID
firebase projects:list
2020年:
官方推荐的方法是使用“别名”:
在 .firebaserc中,像下面这样设置不同的项目 ID:
{ "projects": { "production": "my-project-id", "testing": "my-testing-project-id" } } // you can also add them interactively with `firebase use --add`
然后用 firebase use testing、 firebase use production切换 CLI 中的项目。
firebase use testing
firebase use production
注意: 切换项目不会产生任何 git 差异,它只是在您的本地机器中被记住。使用 firebase use查看当前正在使用的项目。
罕见个案:
firebase use my-own-id
.gitignore
附加@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获取自定义配置环境
npm run runtimeconfig
在 .firebaserc
{ "projects": { "default":"{project-dev-id}", "prod": "{project-prod-id}" } }
我可能错了,但是最初的问题似乎是关于在给定的项目中更改应用程序,而不是简单地更改项目。
这个答案是关于更改项目中的应用程序和 site _ ID。
在我的例子中,我有一个项目(CoolProject) ,有两个网络应用程序:
form
website
这两个应用程序在本地和 GitHub 都有单独的回购协议。
每个应用程序都有自己特定的 site _ ID:
coolproject-form[.web.app]
coolproject-website[.web.app]
我首先设置了 form应用程序,并部署到 coolproject-form没有任何问题。但是,当我创建 web应用程序(以及相关的 coolproject-website site _ ID)并试图使用 firebase deploy --only hosting或 firebase deploy --only hosting:website部署它时,它错误地将它部署到 coolproject-form,从而覆盖了 form应用程序。
coolproject-form
web
coolproject-website
firebase deploy --only hosting
firebase deploy --only hosting:website
这就是我最终解决这个问题的方法(基于这个 Firebase 文档) :
firebase apps:list
firebase hosting:sites:list
firebase target:apply hosting website coolproject-website
... "hosting": [{ "target": "website", "public": "build", "ignore": [ "firebase.json", "**/.*", "**/node_modules/**" ], "rewrites": [ { "source": "**", "destination": "/index.html" } ] }], ...
有了这个 website应用程序现在正确地部署到 coolproject-website.web.app。
coolproject-website.web.app