[英]Environment variables not available to the client
我正在按照此處的說明進行操作: https://nextjs.org/docs/api-reference/next.config.js/environment-variables
我的.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=**************
和我的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
}
};
我正在用這些變量實例化 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
我錯過了什么或做錯了什么? 結果,我無法使用我的 firebase 實例,並且不斷收到此錯誤:
編輯:看起來對於客戶端可用的變量,它們需要在 env 文件中預先添加NEXT_PUBLIC_
(這也是我的情況)
如果您使用的是 Next.js 9.4 或更高版本,則可以使用更新的添加環境變量的方法(請參閱文檔)。 您可以從next.config.js
中刪除變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.