我会尽可能地讲得清楚。我也问过相关问题,但没得到令人信服的回答。
我正在使用React和firebase进行托管。
同时,我将firebase Web API密钥存储在我的.env
文件中。
我使用Firebase CLI设置了Firebase托管,并选择在合并或拉取请求时自动部署。
设置完成后,在我的工作目录中创建了一个.github
文件夹和一个.yml
文件。
.github
- workflows
-firebase-hosting-merge.yml
-firebase-hosting-pull-request.yml
现在,当我手动运行firebase deploy
将项目部署到Firebase(未推送到GitHub)时,一切正常,我的应用程序正在运行。
但是,当我进行更改并将更改推送到GitHub时,Github操作会触发自动部署到Firebase的过程。构建可以通过所有检查。
然而,当我访问托管的URL时,控制台会出现错误,显示Your API key is invalid, please check you have copied it correctly.
我尝试了一些解决方法,例如将Firebase Web API密钥存储到GitHub secrets中,并在.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@v2
- run: npm ci && npm run build --prod
- uses: FirebaseExtended/action-hosting-deploy@v0
with:
repoToken: '${{ secrets.GITHUB_TOKEN }}'
firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_EVENTS_EASY }}'
channelId: live
projectId: my-project
env:
REACT_APP_API_KEY: ${{secrets.REACT_APP_API_KEY}}
FIREBASE_CLI_PREVIEWS: hostingchannels
但我仍然遇到错误。我认为这个错误肯定是由于环境变量导致的。
我将firebase网页API密钥存储在位于根目录的.env.production
文件中。
不知何故,GitHub操作未使用我定义的环境变量。
请告诉我如何管理我的环境变量,以便工作流可以访问它。
env
。 - astrochun.env文件
中,该文件未被推送到GitHub,因为我已将其添加到.gitignore文件
中。我通过命令process.env.REACT_API_KEY
在我的项目中访问API密钥。 - Tarun Singh