NextAuth Firebase 后端“ReferenceError:初始化前无法访问‘应用’”
Posted
技术标签:
【中文标题】NextAuth Firebase 后端“ReferenceError:初始化前无法访问‘应用’”【英文标题】:NextAuth Firebase Backend "ReferenceError: Cannot access 'app' before initialization" 【发布时间】:2021-12-12 16:21:06 【问题描述】:我试图在使用下一个身份验证时将用户存储在 firebase 后端,但无法解决此错误
使用 next-auth FIREBASE 适配器。
https://next-auth.js.org/adapters/firebase :我正在关注文档
Firebase 客户端
import firebase from "firebase/app";
import "firebase/auth";
import "firebase/firestore";
// Import the functions you need from the SDKs you need
import initializeApp from "firebase/app";
import getAnalytics from "firebase/analytics";
// Your web app's Firebase configuration
// For Firebase JS SDK v7.20.0 and later, measurementId is optional
const firebaseConfig =
apiKey: process.env.NEXT_PUBLIC_FIREBASE_API_KEY,
authDomain: process.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN,
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,
measurementId: process.env.NEXT_PUBLIC_FIREBASE_MEASURMENT_ID,
;
// Initialize Firebase
const analytics = getAnalytics(app);
const app = initializeApp(firebaseConfig);
export default firebase;
[...nextauth].js
import NextAuth from "next-auth";
import FirebaseAdapter from "@next-auth/firebase-adapter";
import firebaseClient from "../../../firebase/FirebaseClient";
import GoogleProvider from "next-auth/providers/google";
import firebase from "firebase/app";
import "firebase/firestore";
const firestore = (firebase.apps[0] ?? firebaseClient).firestore();
export default NextAuth(
// Configure one or more authentication providers
providers: [
GoogleProvider(
clientId: process.env.GOOGLE_CLIENT_ID,
clientSecret: process.env.GOOGLE_CLIENT_SECRET,
),
],
adapter: FirebaseAdapter(firestore),
);
错误
ReferenceError: Cannot access 'app' before initialization
【问题讨论】:
【参考方案1】:我打赌您需要如下切换行,因为您在创建分析时没有 app
变量:
const app = initializeApp(firebaseConfig);
const analytics = getAnalytics(app);
【讨论】:
以上是关于NextAuth Firebase 后端“ReferenceError:初始化前无法访问‘应用’”的主要内容,如果未能解决你的问题,请参考以下文章
NextAuth : 使用 NextAuth 时无法查询用户模型