【问题标题】:Next.js TypeError: (0 , firebase_auth__WEBPACK_IMPORTED_MODULE_1__.onAuthStateChanged) is not a functionNext.js TypeError: (0 , firebase_auth__WEBPACK_IMPORTED_MODULE_1__.onAuthStateChanged) 不是函数
【发布时间】:2021-12-17 06:47:11
【问题描述】:

我是 Next.js 开发的新手。我按照 Youtube 教程构建了一个 Whatsapp 克隆。 我使用firebase8.9作为数据库

我想检查用户是否登录,然后转到主页,否则重定向到登录页面。

import '../styles/globals.css'
import { useAuthState } from "react-firebase-hooks/auth"
import { auth, db } from "../firebase"
import Login from "./login"

function MyApp({ Component, pageProps }) {

  const [user] = useAuthState(auth);

  

  return <Component {...pageProps} />;
}

export default MyApp

我的 firebase.js 文件

import firebase from 'firebase';


const firebaseConfig = {
    apiKey: "apikey",
    authDomain: "authdomain",
    projectId: "projectid",
    storageBucket: "storagebucket",
    messagingSenderId: "messagingsenderid",
    appId: "appid"
  };


const app = !firebase.apps.length ? firebase.initializeApp(firebaseConfig) : firebase.app();

const db = app.firestore();

const auth = app.auth();

const provider = new firebase.auth.GoogleAuthProvider();

export { db, auth, provider };

请帮我解决这个问题。 提前致谢!

【问题讨论】:

    标签: javascript firebase next.js typeerror


    【解决方案1】:

    遇到同样的错误

    只需转到节点模块并将 react-firebase-hook 的版本从 4.0.0 更改为 3.0.4。

    然后一个简单的 yarn install 将解决问题...

    【讨论】:

    • 我试过了,还是一样的错误。
    【解决方案2】:

    随着时间的推移,firebase 版本已升级到版本 9+,firebase hooks 也改变了整个结构。因此,您只需转到您的 package.json 文件并将您的“firebase”版本更改为 "firebase": "8.0.0"

    现在在同一 package.json 文件中查找“react-firebase-hooks”,并将其版本从当前版本更改为 "react-firebase-hooks": "^3.0.4"

    现在,打开你的终端并运行yarn install,这将解决版本问题。

    【讨论】:

      猜你喜欢
      • 2018-08-17
      • 2020-03-03
      • 1970-01-01
      • 2022-01-08
      • 2021-06-30
      • 2020-08-04
      • 2022-01-22
      • 2021-02-19
      • 1970-01-01
      相关资源
      最近更新 更多