Firebase Hosting部署报错:缺失projectId配置值(GitHub Actions异常)
解决GitHub Actions部署Firebase Hosting时projectId缺失的问题
问题描述
通过Firebase CLI手动部署应用时网站正常运行,但使用GitHub Actions工作流部署后,网站出现错误:
Uncaught FirebaseError: Installations: Missing App configuration value: "projectId" (installations/missing-app-config-values)
原因分析
本地部署时,.env文件中的配置(包括projectId、服务密钥等)会在构建阶段被项目读取并注入到产物中;但GitHub Actions环境默认不会读取本地的.env文件,导致构建后的产物缺少必要的Firebase配置信息,最终引发报错。
解决方案
1. 将.env配置项存入GitHub仓库Secrets
- 进入GitHub仓库的Settings -> Secrets and variables -> Actions
- 点击New repository secret,将
.env中的每个配置项分别添加为Secrets,例如:FIREBASE_PROJECT_ID:对应你的Firebase项目IDFIREBASE_API_KEY:对应Firebase的API密钥- 其他你.env文件中包含的Firebase配置项
2. 修改GitHub Actions工作流文件
在构建步骤前注入环境变量,确保项目构建时能获取到所需配置。修改后的.yml文件示例:
# This file was auto-generated by the Firebase CLI # https://github.com/firebase/firebase-tools name: Deploy to Firebase Hosting on merge on: push: branches: - master jobs: build_and_deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 # 注入环境变量到构建环境 - name: Inject environment variables run: | echo "FIREBASE_PROJECT_ID=${{ secrets.FIREBASE_PROJECT_ID }}" >> $GITHUB_ENV echo "FIREBASE_API_KEY=${{ secrets.FIREBASE_API_KEY }}" >> $GITHUB_ENV # 根据你的.env文件添加其他必要配置 - run: npm install && npm run build - uses: FirebaseExtended/action-hosting-deploy@v0 with: repoToken: '${{ secrets.GITHUB_TOKEN }}' firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_PROJECT_ID }}' channelId: live projectId: ${{ secrets.FIREBASE_PROJECT_ID }}
3. 确保项目代码正确读取环境变量
检查你的Firebase初始化代码,确保使用环境变量而非硬编码获取配置,例如:
import { initializeApp } from "firebase/app"; const firebaseConfig = { apiKey: process.env.FIREBASE_API_KEY, projectId: process.env.FIREBASE_PROJECT_ID, // 其他配置项 }; const app = initializeApp(firebaseConfig);
不同构建工具(如Vite、Create React App)对环境变量的前缀要求不同,需遵循对应工具的规则(比如Create React App要求变量以REACT_APP_开头)。
内容的提问来源于stack exchange,提问作者wk98
相关产品推荐
相关产品推荐

