我将 .env file
与 Firebase Web API 密钥一起保存在我的本地工作目录中。
我在我的项目中使用它作为
const firebaseConfig = {
apiKey : process.env.REACT_APP_API_KEY,
}
现在我设置了 firebase 托管并使用 GitHub 操作在更改推送到 GitHub 时自动部署。
然而,github 部署的应用程序在我的控制台中给了我一个错误,说 Your API key is invalid, please check you have copied it correctly
。而且我的应用程序将无法工作,因为它缺少 api 密钥。
似乎 github 操作无法访问 process.env.REACT_APP_API_KEY
我觉得问题是
由于 .env 文件未推送到 github 存储库,这就是为什么我的构建服务器无法访问命令 process.env.REACT_APP_API_KEY
我该如何解决这个问题?
Github 工作流程是在设置 firebase 托管时自动设置的。
这是错误还是有其他需要注意的地方?
下面是我的firebase-hosting-merge.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: myprojectname
env:
FIREBASE_CLI_PREVIEWS: hostingchannels
如何让我的 .env 文件变量可以被 github 构建服务器访问? 我需要更改我的 firebaseConfig 吗?或者有什么方法可以让我的 .env 文件可用于构建服务器,然后在构建完成后将其删除?
const firebaseConfig = {
apiKey : process.env.REACT_APP_API_KEY,
}
答案 0 :(得分:1)
这里的一个快速解决方案可能是在 github 操作中执行一个步骤,以便在您需要之前手动创建 .env
文件。
- name: Create env file
run: |
touch .env
echo API_ENDPOINT="https://xxx.execute-api.us-west-2.amazonaws.com" >> .env
echo API_KEY=${{ secrets.API_KEY }} >> .env
cat .env