未捕获的 TypeError: (0 , _firebase.auth) 不是函数
Posted
技术标签:
【中文标题】未捕获的 TypeError: (0 , _firebase.auth) 不是函数【英文标题】:Uncaught TypeError: (0 , _firebase.auth) is not a function 【发布时间】:2018-07-14 17:59:06 【问题描述】:尝试在 React 应用中使用 Firebase 身份验证。 我按照 firbase 文档中的说明进行操作。
使用 npm 安装 firebase
添加了一个 firebase.js 文件:
import * as firebase from 'firebase'
var config =
apiKey: "AIzaSyBUORmX2qG7BXFC4hqfKAq0Y6HMAsLTGbw",
authDomain: "hardy-***lyn.firebaseapp.com",
databaseURL: "https://hardy-***lyn.firebaseio.com",
projectId: "hardy-***lyn",
storageBucket: "hardy-***lyn.appspot.com",
messagingSenderId: "392580429077"
;
firebase.initializeApp(config);
const auth = firebase.auth();
export
auth,
;
在我的组件中调用了其中一个身份验证函数:
"use strict";
import React, Component from "react";
import auth from "../../firebase"
export default class Nav extends Component
constructor(props)
super(props);
this.state =
nav: "hideNav",
login: "hideLogin",
email: "",
password: ""
;
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
handleChange(event)
this.setState(email: event.target.value);
handleSubmit(event)
event.preventDefault();
let email = this.state.email;
let password = this.state.password;
auth().signInWithEmailAndPassword(email, password).catch(function(error)
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
);
auth().onAuthStateChanged(function(user)
if (user)
// User is signed in.
var displayName = user.displayName;
var email = user.email;
var emailVerified = user.emailVerified;
var photoURL = user.photoURL;
var isAnonymous = user.isAnonymous;
var uid = user.uid;
var providerData = user.providerData;
console.log(displayName)
else
console.log('no user')
);
render()
return (
<div>
<form id="login" style=loginStyles[this.state.login] onSubmit=this.handleSubmit>
ADMIN USE ONLY
<br/>
Email:
<input type="email" name="email" onChange=this.handleChange/>
<br/>
Password:
<input type="password" name="password"/>
<br/>
<button >submit</button>
<button onClick=this.hideLogin>hide</button>
</form>
</div>
);
我不断收到错误消息:Uncaught TypeError: (0 , _firebase.auth) is not a function
我用谷歌搜索了这个错误,但没有看到任何结果。
我做错了什么?谢谢!
【问题讨论】:
删除您的 API 密钥,不需要它们 【参考方案1】:在 firebase.js 中,您已经在调用 firebase.auth()
并导出对象。您不应该再次调用导入的 auth
对象,只需访问导入的 auth 对象并在其上调用下一个函数即可。
例如
而不是auth().signInWithEmailAndPassword
试试auth.signInWithEmailAndPassword
【讨论】:
很高兴我能帮上忙。如果问题解决了您的问题,请将问题标记为已回答以上是关于未捕获的 TypeError: (0 , _firebase.auth) 不是函数的主要内容,如果未能解决你的问题,请参考以下文章
Vue:未捕获(承诺中)TypeError:无法读取未定义的属性'_c'
如何使用自定义错误消息捕获“TypeError:无法读取未定义的属性(读取'0')”?
未捕获(承诺):TypeError:无法读取未定义的属性“创建”(离子 3.9,Angularjs 5.0.3)
IBM Worklight 5.0.x:未捕获的 TypeError:无法调用未定义的方法“init”
未捕获的 TypeError:Vue.elementDirective 不是函数
在 Meteor 中使用 fs 模块获取未捕获的 TypeError _fs2.default.readFile 不是函数