Github Actions 中的 Firebase 部署给出了 Authorization failed 错误

Posted

技术标签:

【中文标题】Github Actions 中的 Firebase 部署给出了 Authorization failed 错误【英文标题】:Firebase deploy in Github Actions gives Authorization failed error 【发布时间】:2020-06-08 08:18:35 【问题描述】:

我正在尝试使用 github 操作自动将 React 应用部署到 Firebase,但出现以下错误:

Error: Autorization failed. This account is missing the following required permissions on project ***
 firebase.projects.get
 firebasehosting.sites.update

我有多个站点,当我尝试使用 firebase deploy --only hosting:MY_SITE_NAME 手动部署时,它工作正常。我的工作流程中有两份工作。构建作业通过,但部署作业失败。这是我的工作流程文件:

name: Build and Deploy to Firebase
on:
  push:
    branches:
      - master

jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repo
        uses: actions/checkout@master
      - name: Install Dependencies
        run: yarn install
      - name: Build
        run: yarn build
      - name: Archive Production Artifact
        uses: actions/upload-artifact@master
        with:
          name: build
          path: build
  deploy:
    name: Deploy
    needs: build
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repo
        uses: actions/checkout@master
      - name: Download Artifact
        uses: actions/download-artifact@master
        with:
          name: build
      - name: Deploy to Firebase
        uses: w9jds/firebase-action@master
        with:
          args: deploy --only hosting:MY_SITE_NAME
        env:
          FIREBASE_TOKEN: $ secrets.FIREBASE_TOKEN 

有人知道出了什么问题吗?

【问题讨论】:

您究竟是如何配置要用于通过 Firebase CLI 进行部署的帐户? 你是说本地?我从 firebase-tools 运行命令。 firebase 登录,然后 firebase init。然后我选择了项目。 【参考方案1】:

如果您想在 CI/CD 环境(例如 GitHub Action)中使用 Firebase CLI,您必须为 CLI 提供一种方法来了解它应该使用的帐户凭据。当您在本地运行时,它可以从您与firebase login 的交互中获取凭据。但是当你在别处运行时,没有 UI 提示你。

您必须follow the instructions in the documentation on integrating with CI/CD system,并为应该用于授权部署的帐户提供令牌。

【讨论】:

是的,我也这样做了。对不起,我忘了提。我在 Github 中添加了令牌作为秘密。我在这里使用它FIREBASE_TOKEN: $ secrets.FIREBASE_TOKEN 错误消息告诉您该令牌所代表的帐户根本没有所需的权限。你做了什么来确保它有权限? 你是对的。我太傻了。当我运行firebase login:ci 命令时,firebase 正在从错误的帐户 Chrome 窗口打开一个 chrome 选项卡(我打开了两个不同的会话),当我点击登录时我什至没有看到它......无论如何,非常感谢为你的帮助伙伴!

以上是关于Github Actions 中的 Firebase 部署给出了 Authorization failed 错误的主要内容,如果未能解决你的问题,请参考以下文章

Github Actions 中的 Firebase 部署给出了 Authorization failed 错误

我想从 Github Actions 中的 pom.xml 获取项目版本

将 GitHub Actions 工作流程中的输入值绕过到 terraform 变量文件

检查 GitHub Actions 工作流程中的对象是不是为空

在 GitHub Actions 中使用上下文表达式中的变量

无法从 GitHub Actions 从 GitHub Packages 拉取