使用 Github 操作将 .env 秘密添加到在 Firebase 托管上部署的 Nuxt 应用程序
Add .env Secrets to Nuxt App Deploying on Firebase Hosting with Github Actions
我正在尝试使用 github 操作将 Nuxt 应用程序部署到 firebase 托管...
部署工作正常,直到我将我的 firebase 配置添加到 .env - 它在本地主机上运行良好,但部署时 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,
}
},
deploy.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...
deploy.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 }}
我添加了同样的问题,它是你的环境变量的名称。
如果你想让 Nuxt 注入你的 env 变量,它们必须在你的 .env 文件中以 NUXT_ENV_
(例如 NUXT_ENV_FIREBASE_APIKEY=mykey
)开头。
请参阅:Automatic injection of environment variables 来自 Nuxt 文档的更多详细信息
然后在您的代码中使用变量 process.env.NUXT_ENV_FIREBASE_APIKEY
我正在尝试使用 github 操作将 Nuxt 应用程序部署到 firebase 托管...
部署工作正常,直到我将我的 firebase 配置添加到 .env - 它在本地主机上运行良好,但部署时 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,
}
},
deploy.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...
deploy.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 }}
我添加了同样的问题,它是你的环境变量的名称。
如果你想让 Nuxt 注入你的 env 变量,它们必须在你的 .env 文件中以 NUXT_ENV_
(例如 NUXT_ENV_FIREBASE_APIKEY=mykey
)开头。
请参阅:Automatic injection of environment variables 来自 Nuxt 文档的更多详细信息
然后在您的代码中使用变量 process.env.NUXT_ENV_FIREBASE_APIKEY