这是我的连接方法:
export function connexionUser(email, password) {
result = firebase.auth().signInWithEmailAndPassword(email, password)
.then((res) => {
console.log("res: ", res)
return true;
})
.catch(function (error) {
return false;
});
return result;
};
这是我在index.js中的方法:
login = () => {
const { email, password } = this.state;
var result = connexionUser(email, password);
console.log("result");
console.log(result);
if (result == true) {
this.props.navigation.navigate('Favorites');
}
}
问题: 我想在我的index.js中获得“ connexionUser()”的结果,以便能够管理导航或其他操作。 但是我的结果不是对还是错:
result
A {
"a": 0,
"b": null,
"c": A {
"a": 0,
"b": qb {
"a": [Circular],
"b": [Function anonymous],
"c": false,
"f": null,
"g": [Function anonymous],
"next": null,
},
"c": A {
"a": 0,
"b": qb {
.....
.....and more
PS:我是React Native的初学者。
答案 0 :(得分:2)
您总是可以尝试使用console.log
来查看结果的输出。如果您在使用React Native调试时遇到麻烦,the docs on debugging真的很有帮助。
按现状,由于您实际上并未返回结果,因此您的registerUser将返回undefined
。我想您正在尝试在result
语句中返回then
,但是then
语句应该正在接收firebase函数的结果并返回这些结果。我建议您多读一些有关Promises的内容,以阐明它们的工作方式。一种可以重写的方式是:
export function registerUser(email, password) {
result = firebase.auth().createUserWithEmailAndPassword(email, password).then((res) => {
console.log("res: ", res)
return res;
})
.catch((error) => {
var errorCode = error.code;
var errorMessage = error.message;
alert(errorMessage);
});
return result;
}