firebase.auth不是一个函数。

14 浏览
0 Comments

firebase.auth不是一个函数。

我正在使用Webpack和firebase-admin。

为了安装firebase,我运行了:

npm install --save firebase

我使用以下方法导入firebase:

import * as firebase from 'firebase/app'
import 'firebase/auth'

我也尝试了:

import * as firebase from 'firebase'

我还尝试过:

const firebase = require('firebase')

正如Web入门指南中建议的那样。

但是,当我尝试使用firebase.auth()时,我收到了一个错误:

console.js:32 TypeError: firebase.auth is not a function

当我使用debugger检查firebase时,我发现它确实没有一个auth函数:

> firebase
 {__esModule: true, initializeApp: ƒ, app: ƒ, Promise: ƒ, …}

如何使用webpack作为函数包含auth()

admin 更改状态以发布 2023年5月20日
0
0 Comments

问题并不在于node_modules,而是在于导入组件的方式。

当你使用ES6导出组件时,通常会这样做:export default () => { console.log('default component export'); };

default是关键词,当你像这样使用ES6导入组件时:import firebase from 'firebase',它正在从导出对象中抓取default属性。

在考虑上面的例子时,以下是你做错的地方。

使用ES6:

import * as firebase from 'firebase'
console.log(firebase.auth) // Undefined
console.log(firebase.default.auth) // Function

使用ES5:

var firebase = require('firebase')
console.log(firebase.auth) // Undefined
console.log(firebase.default.auth) // Function

注意.default

0
0 Comments

我通过删除我的node_modules目录并重新安装所有东西来修复了这个问题。

此外,我是这样导入firebase的:

import firebase from 'firebase'
require('firebase/auth')

0