从 firebase-js-sdk 的 v7.20.0 版本开始,出现错误“TypeError: firebase.auth is not a function”

IT技术 javascript reactjs firebase firebase-authentication
2021-05-15 09:57:38

我正在使用 Create React App 构建一个 Reactjs 应用程序,它使用 Firebase 的 auth 和 firestore 服务。我有一个加载 firesbase 服务的module:

var firebase = require('firebase/app');
require('firebase/auth');
require('firebase/firestore');
require('firebase/performance');

if (firebase.apps.length < 1) {
  firebase.initializeApp({
    apiKey: "...",
    authDomain: "...",
    databaseURL: "...",
    projectId: "...",
    storageBucket: "...",
    messagingSenderId: "...",
    appId: "...",
    measurementId: "..."
  });
}

export const fbAuth = firebase.auth();
export const db = firebase.firestore();

export default firebase;

直到昨天我将 firebase 包从 v7.19.1 升级到 v7.20.0 时,这段代码才有效。

我正在运行 Create React App 的npm start脚本,该脚本使用其 webpack 配置来编译应用程序。在 firebase 升级之后,我的应用程序立即显示编译错误“TypeError: firebase.auth is not a function”,突出显示了我export const fbAuth = firebase.auth();的代码行。

如果我将 firebase-js-sdk 版本降级到 7.19.1,我的应用程序可以毫无问题地编译和运行。

这是最新的 firebase 软件包中的错误吗?或者升级是否暴露了 Create React App 的 webpack 配置中的一个怪癖?还是我的代码很奇怪?有人知道这里发生了什么吗?

2个回答

我使用相同的代码创建了其他一些简单的项目,并且运行正常。考虑到这个问题可能是由其他依赖项引起的,我尝试了他们安装的版本,删除了 node_modules 然后运行npm install全新安装。在很长一段时间,没有什么工作,然后,突然之间,我的应用程序开始工作。我取消了我为查明问题所做的最后一次更改……结果发现我什至无法再次重现该问题!跆拳道?也许在我的命令 shell 环境中有一些奇怪的东西?不确定。猜想时不时地重新启动是值得的。

试试这个👉从“firebase”导入firebase

这仅在您安装了 firebase 工具时才有效。