【问题标题】:TypeError: _fire__WEBPACK_IMPORTED_MODULE_1__.default.auth is not a function类型错误:_fire__WEBPACK_IMPORTED_MODULE_1__.default.auth 不是函数
【发布时间】:2026-02-20 11:55:02
【问题描述】:

我是 React.js 的初学者。我正在按照教程进行登录身份验证。我从这部分代码中收到此错误(TypeError: fire__WEBPACK_IMPORTED_MODULE_1_.default.auth is not a function): `

const authListener = () => {
    fire.auth().onAuthStateChanged((user) => {
      if (user) {
        clearInputs();
        setUser(user);
      } else {
        setUser("");
      }
    })
  };

` 我已经搜索了每个论坛、主题或 Youtube 视频,但仍然找不到答案。有人能告诉我问题出在哪里以及如何解决吗?欣赏一切。

【问题讨论】:

    标签: javascript reactjs firebase firebase-authentication jsx


    【解决方案1】:

    如果您使用的是模块化 SDK v9.0.0,请尝试像这样重构您的代码:

    import { initializeApp } from "firebase/app"
    import { getAuth, onAuthStateChanged } from "firebase/auth"
    
    const app = initializeApp(app)
    const auth = getAuth(app)
    
    const authListener = () => {
      onAuthStateChanged(auth, (user) => {
        if (user) {
          console.log(user)
        }
      })
    }
    

    如果您想使用旧的命名空间语法 (firebase.auth()),请将您的导入更改为兼容版本:

    import firebase from "firebase/comapt/app"
    import "firebase/compat/auth"
    

    您可以在documentation 中阅读有关升级到模块化 SDK 的更多信息。

    【讨论】:

    • 我不知道兼容和模块化版本。经过一番研究,我找到了这个文档 firebase.google.com/docs/web/modular-upgrade 并更改了导入和函数本身。现在它正在工作。对于正在阅读本文并与我有同样问题的每个人,我建议访问我提供链接的站点。希望能帮助到你。顺便说一句,非常感谢您的帮助