[英]Environment variables not available to the client
I am doing the approach as instructed here: https://nextjs.org/docs/api-reference/next.config.js/environment-variables我正在按照此处的说明进行操作: https://nextjs.org/docs/api-reference/next.config.js/environment-variables
My .env.local
file is as follows (vars censored):我的
.env.local
文件如下(vars censored):
GRAPHQL_ENDPOINT_FEDERATED="**************"
FIREBASE_API_KEY="**************"
FIREBASE_AUTH_DOMAIN="**************
FIREBASE_DATABASE_URL="**************"
FIREBASE_PROJECT_ID="**************"
FIREBASE_STORAGE_BUCKET="**************m"
FIREBASE_MESSAGING_SENDER_ID="**************"
FIREBASE_APP_ID="**************"
IOS_APP_ID=**************
IOS_BUNDLE_IDENTIFIER="**************"
NEXT_PUBLIC_SECRET_KEY=**************
and my next.config.js
file:和我的
next.config.js
文件:
module.exports = {
poweredByHeader: false,
reactStrictMode: true,
env: {
GRAPHQL_ENDPOINT_FEDERATED: process.env.GRAPHQL_ENDPOINT_FEDERATED,
FIREBASE_API_KEY: process.env.FIREBASE_API_KEY,
FIREBASE_AUTH_DOMAIN: process.env.FIREBASE_AUTH_DOMAIN,
FIREBASE_DATABASE_URL: process.env.FIREBASE_DATABASE_URL,
FIREBASE_PROJECT_ID: process.env.FIREBASE_PROJECT_ID,
FIREBASE_STORAGE_BUCKET: process.env.FIREBASE_STORAGE_BUCKET,
FIREBASE_MESSAGING_SENDER_ID: process.env.FIREBASE_MESSAGING_SENDER_ID,
FIREBASE_APP_ID: process.env.FIREBASE_APP_ID,
IOS_APP_ID: process.env.IOS_APP_ID,
IOS_BUNDLE_IDENTIFIER: process.env.IOS_BUNDLE_IDENTIFIER
}
};
I am instantiating the firebase instance with those variables and it prints out fine on the server, but on client they are all undefined
So my firebase.ts
file is like:我正在用这些变量实例化 firebase 实例,它在服务器上打印得很好,但在客户端它们都是
undefined
的所以我的firebase.ts
文件就像:
import fb from 'firebase/app'
import 'firebase/auth';
import 'firebase/database';
// firebase Config
const firebaseConfig = {
apiKey: process.env.FIREBASE_API_KEY,
authDomain: process.env.FIREBASE_AUTH_DOMAIN,
databaseURL: process.env.FIREBASE_DATABASE_URL,
projectId: process.env.FIREBASE_PROJECT_ID,
storageBucket: process.env.FIREBASE_STORAGE_BUCKET,
messagingSenderId: process.env.FIREBASE_MESSAGING_SENDER_ID,
appId: process.env.FIREBASE_APP_ID
};
console.log('process.env.FIREBASE_API_KEY : ', process.env.FIREBASE_API_KEY);
console.log('firebase config : ', firebaseConfig);
const firebase = !fb.apps.length ? fb.initializeApp(firebaseConfig) : fb.app()
export default firebase
Ouputs from server:服务器的输出:
And outputs on the client:
并在客户端输出:
Am I missing something or doing anything wrong?我错过了什么或做错了什么? As a result, I cannot use my firebase instance and I continuously get this error:
结果,我无法使用我的 firebase 实例,并且不断收到此错误:
EDIT: Looks like for variables to be available to the client, they need to be pre-pended with NEXT_PUBLIC_
in the env file (and this was my case as well)编辑:看起来对于客户端可用的变量,它们需要在 env 文件中预先添加
NEXT_PUBLIC_
(这也是我的情况)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.