我是一个初学者,尝试使用Firebase进行我的本机项目身份验证。我能够验证用户身份,打印用户详细信息和/或在验证时发现任何错误。但是我无法将值返回给另一个函数。 我的项目层次结构: 项目 |-> utils / firebaseConnection.js |-> Components / Login.js
这是我的Firebase身份验证代码:
export function loginUser (email,password) {
firebase.auth().signInWithEmailAndPassword(email,password)
.then(user => {
console.log('user: ', user)
return user
})
}
我可以在控制台中打印用户数据,但是在Login组件中看不到返回值。下面是登录组件方法的代码:
import * as firebaseAPI from '../utils/firebaseConnection'
...
...
loginUser (email,password) {
console.log('l1: ', firebaseAPI.loginUser(email,password));
}
但是l1打印“ undefined”。我什至尝试过firebaseAPI.loginUser(email,password).then(user),但是即使这样也会产生未定义的错误。请帮帮我。谢谢。如果需要,我可以给您更多信息。
答案 0 :(得分:0)
您不能从异步调用返回任何内容。请参阅JJJ提供的链接以获取更详细的解释,但这基本上意味着您应该只返回从signInWithEmailAndPassword
获得的承诺,并将then()
放入您的调用代码中:
export function loginUser (email,password) {
return firebase.auth().signInWithEmailAndPassword(email,password)
}
loginUser (email,password).then(user => {
console.log('l1: ', user);
});