Javascript 如何修复此错误类型错误:_components\u firebase\u firebase\u WEBPACK\u IMPORTED\u MODULE\u 2\u。default.auth不是函数

Javascript 如何修复此错误类型错误:_components\u firebase\u firebase\u WEBPACK\u IMPORTED\u MODULE\u 2\u。default.auth不是函数,javascript,firebase,next.js,Javascript,Firebase,Next.js,我正在将Firebase与next.js一起使用,我的文件设置如下。我正在尝试使用firebase客户端sdk,但它似乎无法用于注册 Firebase.js,其中初始化了Firebase应用程序 import firebase from 'firebase/app' import 'firebase/auth' const config = { apiKey: process.env.FIREBASE_API_KEY, authDomain: process.env.FIREBA

我正在将Firebase与next.js一起使用,我的文件设置如下。我正在尝试使用firebase客户端sdk,但它似乎无法用于注册

Firebase.js,其中初始化了Firebase应用程序

import firebase from 'firebase/app'
import 'firebase/auth'
const config = {
    apiKey: process.env.FIREBASE_API_KEY,
    authDomain: process.env.FIREBASE_AUTH_DOMAIN,
    databaseURL: process.env.FIREBASE_DATABASE_URL,
    projectId: process.env.FIREBASE_PROJECT_ID,
    storageBucket: process.env.FIREBASE_STORAGE_BUCKET,
    messagingSenderId: process.env.FIREBASE_MESSAGING_SENDER_ID,
    appId: process.env.FIREBASE_APP_ID,
    measurementId: process.env.FIREBASE_MEASUREMENT_ID
};

export default function initFirebase() {
  if (!firebase.apps.length) {
    
    firebase.initializeApp(config)
  }
}
在此注册paenter代码上出错的函数

import Firebase from "../../components/firebase/Firebase";

    Firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) {
                            // Handle Errors here.
                            
                           
                          });

您没有从Firebase.js导出任何名为
auth
的内容。这就是错误消息试图告诉您的。如果不导出,则在导入后无法访问它

如果您想从全局FialBasic命名空间访问Author()函数,请考虑导出它:

export function auth() {
    return firebase.auth();
}
然后可以将其导入另一个源文件:

import { auth } from "../../components/firebase/Firebase";
auth().createUserWithEmailAndPassword(...);

通常,您应该避免像现在使用的那样使用
default
导出。最好将每个出口单独命名。如果您想公开整个SDK,也可以考虑导出整个<代码> FialBase<代码>命名空间。

>我认为您的FiasBaseJS模块的问题是,您导出了<>代码> InItFielase函数,而不是<代码> FiasBase/Cuff>本身。

尝试将底部部分更改为:

if (!firebase.apps.length) {
  firebase.initializeApp(config)
}

export default firebase;

另外,当我第一次看到你的帖子时,我被一个看似相似的问题挂断了电话,导致我在发表评论时忽略了这个出口问题。我应该早点发现这个出口问题。这是我给自己的教训,告诉自己不要急于下结论。

我的代码与之类似,只是我的firebase导入行从“firebase/app”中读取
import*as firebase它一直在工作,直到今天早上我将firebase软件包升级到v7.20.0。我收到了相同的“auth不是函数”错误。我将firebase包降级为v7.19.1,错误消失了。我猜这个firebase软件包版本中有一个bug?您是如何降级firebase软件包的?您可以运行
npm安装firebase@7.19.0
或者,在package.json文件中,将firebase条目设置为读取
“firebase”:“7.19.1”
,从版本号前面删除插入符号,然后重新运行
npm install
,重新安装所有软件包。只是别忘了检查未来的升级,看看这个问题是否得到解决。我发表了我自己的问题。值得一提的是,当代码突然又开始为我工作时,我正在与其他依赖项的版本玩游戏,看看是否有任何东西影响了这个问题。我尝试隔离修复程序,但无法重现问题!非常令人沮丧!我认为命令shell可能有问题,应该早点重新启动它。真奇怪!不管怎样,它起作用了。