You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Github Action中Firebase私钥解析异常:多余反斜杠问题求助

Github Action中Firebase私钥解析异常的解决方案

问题重现

在Github Action环境中使用Firebase私钥时,私钥字符串被自动添加多余反斜杠和换行符,导致解析失败。本地测试完全正常,仅在Action注入环境变量时出现问题,尝试过直接存储原始密钥、用引号包裹存入Secret均无效,此前Action运行正常,突发报错。错误信息如下:

expected: "{\"error\":\"403 Forbidden\"}"
actual  : "{\"error\":\"no private key data found in: \\\"-----BEGIN PRIVATE KEY-----\\\\nasdasdasdasdasdasdasdasdasdasd\\\\...\\\\ndsTYSiV+aU01dYLlmraHkeH86y6MlROTmnpHi0FmsFC5CLpadpzg8HB0EKSqNEnr\\\\asdsasasasasas\\\\asasasasasasas\\\\asasasasasas\\\\nPvQFJo1GwrPjzps+QAjtveoi24hCEvbBL2NM5b9SP+dDb1GR4zKYEya6r57xOJX7\\\\nGK4mrAikx/0TWiJghkMzl48+pVfFZ/pgfkcJF+0Rep3AgVwD9/0N3bTkD1tgzSCS\\\\nklAlx/sdi+qyskJqGZrrWrA=\\\\n-----END PRIVATE KEY-----\\\\n\\\"\"}"

解决步骤

  • 正确存储私钥到Github Secrets
    直接复制Firebase私钥的完整原始内容(包含-----BEGIN PRIVATE KEY-----、-----END PRIVATE KEY-----及中间所有换行),粘贴到Github Secrets中,不要手动添加引号或任何转义字符。

  • 在代码/Action中正确处理私钥
    如果是Node.js脚本使用firebase-admin,需要将环境变量中的私钥转义字符还原:

    const serviceAccount = {
      type: 'service_account',
      project_id: process.env.FIREBASE_PROJECT_ID,
      private_key: process.env.FIREBASE_PRIVATE_KEY.replace(/\\n/g, '\n'),
      client_email: process.env.FIREBASE_CLIENT_EMAIL,
      // 其他必填字段
    };
    
    admin.initializeApp({
      credential: admin.credential.cert(serviceAccount)
    });
    

    如果是在Github Action的YAML中直接生成密钥文件,用带双引号的echo命令保留原始格式:

    - name: Prepare Firebase credentials
      env:
        FIREBASE_PRIVATE_KEY: ${{ secrets.FIREBASE_PRIVATE_KEY }}
      run: |
        echo "$FIREBASE_PRIVATE_KEY" > ./service-account.json
    
  • 锁定依赖版本排查问题
    若此前运行正常突发报错,大概率是依赖包自动更新导致的兼容性问题。在package.json中锁定firebase-admin、firebase-tools等相关依赖的具体版本,避免自动升级到不稳定版本。

内容的提问来源于stack exchange,提问作者Micheal J. Roberts

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 14:45:33