【发布时间】:2021-03-23 15:46:59
【问题描述】:
我正在尝试在我的 Next.js 项目中实现 Firebase 身份验证。身份验证系统工作得很好,但只有当我在 initializeApp 中直接声明 API 密钥 时。例如:
import firebase from 'firebase/app'
import 'firebase/auth'
const app = !firebase.apps.length ? (
firebase.initializeApp({
apiKey: 'MY_KEY',
authDomain: process.env.FIREBASE_DOMAIN,
projectId: process.env.FIREBASE_PROJECT_ID,
storageBucket: process.env.FIREBASE_SOTORAGE_BUCKET,
messagingSenderId: process.env.FIREBASE_SENDER_ID,
appId: process.env.FIREBASE_ID,
measurementId: process.env.FIREBASE_MESUREMENT_ID,
})
) : (firebase.app())
export default app
当我尝试使用 .env 文件获取 API 密钥时,next.js 会抛出以下错误: "未处理的运行时错误 错误:您的 API 密钥无效,请检查您是否正确复制了它。"
我还尝试通过在 next.config.js 中添加 env 配置来添加这些变量,就像 Vercel 的推荐 https://nextjs.org/docs/api-reference/next.config.js/environment-variables 一样。它也没有工作。
我当前的代码是这样的:
import firebase from 'firebase/app'
import 'firebase/auth'
const app = !firebase.apps.length ? (
firebase.initializeApp({
apiKey: process.env.FIREBASE_KEY,
authDomain: process.env.FIREBASE_DOMAIN,
projectId: process.env.FIREBASE_PROJECT_ID,
storageBucket: process.env.FIREBASE_SOTORAGE_BUCKET,
messagingSenderId: process.env.FIREBASE_SENDER_ID,
appId: process.env.FIREBASE_ID,
measurementId: process.env.FIREBASE_MESUREMENT_ID,
})
) : (firebase.app())
export default app
我应该怎么做才能使 initializeApp 能够读取 process.env.FIREBASE_KEY 值?
【问题讨论】:
标签: javascript node.js firebase google-cloud-functions next.js