reactjs - 使用 firebase 创建 NextJS 应用程序 - firebase 在本地工作,但在 vercel 生产中失败
问题描述
我在 NextJs 本地使用 firebase,一切正常
.env.local
NEXT_PUBLIC_FIREBASE_API_KEY="xxxxxxx"
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN="yyyyyyy"
NEXT_PUBLIC_FIREBASE_DATABASE_URL="zzzzzzzz"
NEXT_PUBLIC_FIREBASE_PROJECT_ID="xxxxxxx"
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET="yyyyyyyy"
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID="zzzzzzzz"
NEXT_PUBLIC_FIREBASE_APP_ID="xxxxxxxx"
客户端应用程序.js
import firebase from "firebase/app";
import "firebase/database";
const clientCredentials = {
apiKey: process.env.NEXT_PUBLIC_FIREBASE_API_KEY,
authDomain: process.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN,
databaseURL: process.env.NEXT_PUBLIC_FIREBASE_DATABASE_URL,
projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID,
storageBucket: process.env.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET,
messagingSenderId: process.env.NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID,
appId: process.env.NEXT_PUBLIC_FIREBASE_APP_ID,
};
if (!firebase.apps.length) {
firebase.initializeApp(clientCredentials);
}
export default firebase;
但是,当我通过 Vercel 进行部署时,我会收到以下控制台错误:
@firebase/database: FIREBASE FATAL ERROR: Can't determine Firebase Database URL. Be sure to include a Project ID when calling firebase.initializeApp().
Error: FIREBASE FATAL ERROR: Can't determine Firebase Database URL. Be sure to include a Project ID when calling firebase.initializeApp().
有没有人遇到过类似的错误?
解决方案
为避免所有麻烦,只需.env
在项目目录中创建一个文件并添加所有凭据。还在文件.firebaserc
文件中检查内容是否像这样,
{
"projects": {
"default": "your firebase project ID",
"webapp": "your firebase project ID"
}
}
如果您还有任何问题,请查看此https://github.com/vercel/next.js/discussions/14420#discussioncomment-29816
推荐阅读
- regex - 如何根据行中前一个单元格的值计算不同长度的行中的单元格?
- performance - Qt 在 10 毫秒内画出 100 万个圆圈
- java - 为什么 Java 编译器的设计显然不通过 try-catch 询问最终变量的分配?
- c++ - 为什么添加范围解析参数后代码可以工作?
- c# - .net 核心控制台应用程序作为 Windows 服务 - 是否可以在不使用 Kill() 方法的情况下安全地终止已启动进程的执行?
- django - Django:如何在 ListView 中从 db 获取大量帖子
- javascript - 顶级异步函数在等待/解决之前返回承诺
- php - Windows 和 Ubuntu Git 客户端之间共享 Git 配置:符号链接版本控制问题
- c# - 视频文件未在 C# 中使用 FFMpeg 进行修剪和复制
- javascript - 以特定格式获取特定时区的当前日期时间