使用FirebaseExtended/action-hosting-deploy@v0认证失败,无法推送至GitHub仓库
解决方案:Firebase部署认证失败(JSON解析错误)
核心问题分析
报错里的SyntaxError: Unexpected token F in JSON at position 0是因为google-auth-library尝试解析非JSON格式的响应,结合Failed to authenticate, have you run firebase login?,本质是GitHub Actions环境中缺少有效的Firebase认证凭据,导致认证流程出错。
修复步骤
检查Firebase服务账号密钥
确保GitHub Secrets中配置的FIREBASE_SERVICE_ACCOUNT_<PROJECT_ID>是完整正确的JSON格式,无多余空格、换行或字符。重新从Firebase控制台「项目设置」→「服务账号」→「生成新的私钥」获取完整密钥。正确配置Firebase Action
若使用firebase-tools部署,在GitHub Actions workflow文件中正确引入认证凭据:- name: Deploy to Firebase uses: FirebaseExtended/action-hosting-deploy@v0 with: repoToken: '${{ secrets.GITHUB_TOKEN }}' firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_YOUR_PROJECT_ID }}' projectId: your-project-id或使用
firebase login:ci生成的令牌:- name: Deploy to Firebase run: npx firebase deploy --token ${{ secrets.FIREBASE_TOKEN }}清理缓存并重装依赖
在workflow中添加清理步骤,避免旧依赖或缓存干扰:- name: Clean npm cache run: npm cache clean --force - name: Install dependencies run: npm install重置本地认证状态
本地执行firebase logout,再用firebase login:ci生成新令牌,替换GitHub Secrets中的旧令牌。
额外排查点
- 确认GitHub Secrets中的凭据名称与workflow引用的名称完全一致(大小写敏感)。
- 检查Firebase项目权限,确保服务账号拥有「Cloud Build Editor」或「Firebase Admin」权限。
内容的提问来源于stack exchange,提问作者Andre Korosh Kordasti
相关产品推荐
相关产品推荐

