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 工作流程中的对象是不是为空