【问题标题】:Firebase CLI - Which project id takes precedence when deploying?Firebase CLI - 部署时哪个项目 ID 优先?
【发布时间】:2025-12-13 03:40:01
【问题描述】:

我有一个代码库,我已将其部署到 2 个 firebase 项目,devprod

我的.firebaserc 包含:

{
  "projects": {
    "default": "dev"
  }
}

但是,如果我输入 firebase list,我会看到

┌─────────────────────┬───────────────────────┬─────────────┐
│ Name                │ Project ID / Instance │ Permissions │
├─────────────────────┼───────────────────────┼─────────────┤
│ dev                 │ dev                   │ Owner       │
├─────────────────────┼───────────────────────┼─────────────┤
│ prod (current)      │ prod                  │ Owner       │
└─────────────────────┴───────────────────────┴─────────────┘

我看到这是因为实际的项目 ID 存储在 ~/.config/configstore/firebase-tools.json:

 "activeProjects": {
      "/mnt/d/testfb": "prod"
  }

我想知道确定要使用的 Firebase 项目 ID 的优先顺序。我查看了 firebase cli github,但不幸的是,我在尝试跟踪文件时有点迷失了方向。

可以安全地假设firebase-tools.json 是事实吗?如果有,.firebaserc 文件的用途是什么?

【问题讨论】:

    标签: firebase firebase-cli firebase-tools


    【解决方案1】:

    https://firebase.google.com/docs/cli/

    一个.firebaserc 文件,用于存储您的项目别名。

    .firebaserc 文件仅是别名设置。

    当您在项目初始化期间选择 Firebase 项目时,该项目的别名会自动称为默认别名。但是,要允许特定于项目的命令针对不同的 Firebase 项目运行但使用相同的项目目录,请在您的项目目录中运行以下命令。

    firebase use alias_or_projectID为你的项目目录切换别名

    如果您有一个仅供您使用的开发项目,您可以在每个命令中传递 --project 标志,或者在不为 Firebase 项目定义别名的情况下运行 firebase use projectID。

    如果将以下代码设置为.firebaserc

    {
      "projects": {
        "dev": "<dev-project-id>",
        "prod": "<prod-project-id>"
      }
    }
    

    您可以使用别名而不是项目 ID 来更改当前的 Firebase 项目。像这样。

    • firebase use dev
    • firebase use prod

    如果您在不带--project 标志的情况下运行firebase 命令,那么firebase 命令将针对当前的Firebase 项目运行。

    【讨论】: