我知道有一个NextJS认证的方式来做这件事,但它不舒服,我和我习惯这样做的firebase,但我不明白为什么它是收到一个错误的认证?
基本上我有一堆代码。
getAuth()给我一个错误。
// Import the functions you need from the SDKs you need
import { initializeApp } from "firebase/app";
import { getFirestore } from "firebase/firestore";
import { getStorage } from "firebase/storage";
import { getAuth ,GoogleAuthProvider, FacebookAuthProvider, TwitterAuthProvider,GithubAuthProvider } from "firebase/auth";
// TODO: Add SDKs for Firebase products that you want to use
// https://firebase.google.com/docs/web/setup#available-libraries
console.log(process.env.API_KEY);
console.log(process.env.AUTH_DOMAIN);
console.log(process.env.PROJECT_ID);
console.log(process.env.STORAGE_BUCKET);
console.log(process.env.MESSAGING_SENDER_ID);
console.log(process.env.APP_ID);
// Your web app's Firebase configuration
const firebaseConfig = {
apiKey: process.env.API_KEY,
authDomain: process.env.AUTH_DOMAIN,
projectId: process.env.PROJECT_ID,
storageBucket: process.env.STORAGE_BUCKET,
messagingSenderId: process.env.MESSAGING_SENDER_ID,
appId: process.env.APP_ID,
};
// Initialize Firebase
const app = initializeApp(firebaseConfig);
export const db = getFirestore(app);
export const storage = getStorage(app);
export const authentication = getAuth();
export const google = new GoogleAuthProvider();
export const facebook = new FacebookAuthProvider();
export const twitter = new TwitterAuthProvider();
export const github = new GithubAuthProvider();
这是我在nextjs中收到的错误。
但是我在.env文件中的所有firebase配置都是正确的,它在console.log()中工作,有人能告诉我为什么它不工作吗?最近我在NextJS中收到的任何bug都让我很恼火,我不明白它是从哪里来的。
1条答案
按热度按时间kqlmhetl1#
根据向浏览器公开环境变量,所有
process.env
变量都应该以NEXT_PUBLIC_
作为前缀。同样作为本地测试,您可以直接从Firebase云用户界面的项目设置中复制项目配置,并替换依赖于环境变量的配置。使用该配置验证您是否能够连接,然后返回到您的环境变量。