getAuth()在nextjs的firebase中无效

up9lanfz  于 2023-02-19  发布在  其他
关注(0)|答案(1)|浏览(103)

我知道有一个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都让我很恼火,我不明白它是从哪里来的。

kqlmhetl

kqlmhetl1#

根据向浏览器公开环境变量,所有process.env变量都应该以NEXT_PUBLIC_作为前缀。
同样作为本地测试,您可以直接从Firebase云用户界面的项目设置中复制项目配置,并替换依赖于环境变量的配置。使用该配置验证您是否能够连接,然后返回到您的环境变量。

相关问题