GitHub推送时向Firebase实时数据库加键值对遇版本兼容问题
问题原因
你遇到的问题根源是Workflow中使用的w9jds/firebase-action@v1.5.0版本过旧,该Action内部封装了Node.js v12环境,会覆盖你通过actions/setup-node@v3设置的最新Node.js版本。当执行这个旧Action时,实际运行环境是Node.js v12.18.1,和Firebase CLI v12.5.2的版本要求冲突,从而触发错误。
解决办法
方案一:替换旧Action为官方命令执行
放弃使用w9jds/firebase-action,改用在setup-node之后直接安装最新Firebase CLI并执行命令,确保全程使用你设置的Node.js环境:
修改后的Workflow代码:
name: Deploy to Firebase Hosting on PR on: push: branches: - main jobs: build_and_preview: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: latest # 安装最新Firebase CLI - run: npm install -g firebase-tools # 部署到Firebase Hosting - uses: FirebaseExtended/action-hosting-deploy@v0 with: repoToken: '${{ secrets.GITHUB_TOKEN }}' firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT }}' projectId: ... channelId: live # 执行数据库设置命令 - run: firebase database:set /Request '"NewVersionOfFARKMain"' --project ... --token ${{ secrets.FIREBASERTDB }}
方案二:升级旧Action到兼容版本
如果坚持使用w9jds/firebase-action,需要升级到其最新版本(目前已更新到支持更高Node.js版本的分支),将w9jds/firebase-action@v1.5.0替换为w9jds/firebase-action@master或最新的标签版本,确保其内部使用的Node.js版本符合Firebase CLI要求。
验证要点
- 执行Workflow时,查看每个步骤的日志,确认
actions/setup-node步骤后显示的Node.js版本是>=16.13.0或>=18.0.0 - 执行Firebase相关命令的步骤,环境Node.js版本和setup-node设置的版本一致
内容的提问来源于stack exchange,提问作者Geo Shwale
相关产品推荐
相关产品推荐

