【问题标题】:NextAuth Firebase Backend "ReferenceError: Cannot access 'app' before initialization"NextAuth Firebase 后端“ReferenceError:初始化前无法访问‘应用’”
【发布时间】: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

【问题讨论】:

    标签: javascript reactjs firebase next.js next-auth


    【解决方案1】:

    我打赌您需要如下切换行,因为您在创建分析时没有 app 变量:

    const app = initializeApp(firebaseConfig);
    const analytics = getAnalytics(app);
    

    【讨论】:

      猜你喜欢
      • 2022-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-12
      • 2020-12-29
      • 2021-09-10
      相关资源
      最近更新 更多