firebase - 使用 Github 操作将 .env 机密添加到在 Firebase 托管上部署的 Nuxt 应用
问题描述
我正在尝试使用 github 操作将 Nuxt 应用程序部署到 Firebase 托管...
部署工作正常,直到我将我的 firebase 配置添加到 .env - 它在 localhost 上运行良好,但部署时 api 密钥和其他配置似乎没有注册。
.env
FIREBASE_APIKEY=mykey
FIREBASE_AUTHDOMAIN=mydomain
FIREBASE_DATABASEURL=mydburl
FIREBASE_PROJECTID=projectid
FIREBASE_STORAGEBUCKET=bucket
FIREBASE_MESSAGINGSENDERID=senderid
FIREBASE_APPID=appid
FIREBASE_MEASUREMENTID=measurementid
nuxt.config.js
// Nuxt-Fire Module Options
firebase: {
config: {
apiKey: process.env.FIREBASE_APIKEY,
authDomain: process.env.FIREBASE_AUTHDOMAIN,
databaseURL: process.env.FIREBASE_DATABASEURL,
projectId: process.env.FIREBASE_PROJECTID,
storageBucket: process.env.FIREBASE_STORAGEBUCKET,
messagingSenderId: process.env.FIREBASE_MESSAGINGSENDERID,
appId: process.env.FIREBASE_APPID,
measurementId: process.env.FIREBASE_MEASUREMENTID
},
onFirebaseHosting: true,
services: {
auth: {
persistence: 'local', // default
initialize: {
// onAuthStateChangedMutation: 'ON_AUTH_STATE_CHANGED_MUTATION',
onAuthStateChangedAction: 'onAuthStateChanged'
},
ssr: true
},
firestore: true,
storage: true,
performance: true
// analytics: true,
}
},
部署.yml
name: Firebase Continuous Deployment
on:
push:
branches: [master]
jobs:
firebase-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: actions/setup-node@master
with:
node-version: '12'
- run: yarn install
env:
FIREBASE_APIKEY: ${{ secrets.FIREBASE_APIKEY }}
FIREBASE_AUTHDOMAIN: ${{ secrets.FIREBASE_AUTHDOMAIN }}
FIREBASE_DATABASEURL: ${{ secrets.FIREBASE_DATABASEURL }}
FIREBASE_PROJECTID: ${{ secrets.FIREBASE_PROJECTID }}
FIREBASE_STORAGEBUCKET: ${{ secrets.FIREBASE_STORAGEBUCKET }}
FIREBASE_MESSAGINGSENDERID: ${{ secrets.FIREBASE_MESSAGINGSENDERID }}
FIREBASE_APPID: ${{ secrets.FIREBASE_APPID }}
FIREBASE_MEASUREMENTID: ${{ secrets.FIREBASE_MEASUREMENTID }}
- run: yarn generate
- uses: w9jds/firebase-action@master
with:
args: deploy --only hosting
env:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
解决方案
环境变量在 yarn install 上运行,而不是在 yarn generate ...
部署.yml
name: Firebase Continuous Deployment
on:
push:
branches: [master]
jobs:
firebase-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: actions/setup-node@master
with:
node-version: '12'
- run: yarn install
- run: yarn generate
env:
FIREBASE_APIKEY: ${{ secrets.FIREBASE_APIKEY }}
FIREBASE_AUTHDOMAIN: ${{ secrets.FIREBASE_AUTHDOMAIN }}
FIREBASE_DATABASEURL: ${{ secrets.FIREBASE_DATABASEURL }}
FIREBASE_PROJECTID: ${{ secrets.FIREBASE_PROJECTID }}
FIREBASE_STORAGEBUCKET: ${{ secrets.FIREBASE_STORAGEBUCKET }}
FIREBASE_MESSAGINGSENDERID: ${{ secrets.FIREBASE_MESSAGINGSENDERID }}
FIREBASE_APPID: ${{ secrets.FIREBASE_APPID }}
FIREBASE_MEASUREMENTID: ${{ secrets.FIREBASE_MEASUREMENTID }}
- uses: w9jds/firebase-action@master
with:
args: deploy --only hosting
env:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
推荐阅读
- javascript - 用javascript检测设备制造商(即手机品牌)
- facebook-ads-api - 测试 Facebook 应用的 ads_management 权限
- jquery - 将 Typed.JS 与 Express 一起使用
- java - 使用 ImageView 以及底部的自定义布局构建 CollapsingToolbar
- amazon-web-services - 如何将 S3 存储桶的访问限制为来自我的 EKS 集群的流量?
- jquery - jQuery GET 请求适用于本地主机,但不适用于生产
- ms-office - 如何调试 Microsoft Excel 加载项/插件清单文件
- python - binance.exceptions.BinanceAPIException: APIError(code=-1022): 此请求的签名无效
- python - 如何在python中创建reduce()
- javascript - Javascript从另一个元素中找到最接近的h2