Вот способ подключения:
export function connexionUser(email, password) {
result = firebase.auth().signInWithEmailAndPassword(email, password)
.then((res) => {
console.info("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.info("result");
console.info(result);
if (result == true) {
this.props.navigation.navigate('Favorites');
}
}
Проблема : Я хотел бы получить результат «connexionUser ()» в моем index.js, чтобы иметь возможность управлять навигацией или чем-то еще. Но мой результат неверен или ложен:
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.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы всегда можете попробовать добавить console.info, чтобы посмотреть, каков будет результат. Если у вас возникли проблемы с отладкой с помощью React Native, документы по отладке действительно поможет.
В его нынешнем виде ваш registerUser вернет undefined, поскольку вы фактически не возвращаете результат. Я предполагаю, что вы пытаетесь вернуть result в своем операторе then, но оператор then должен получать результаты вашей функции firebase и возвращать эти результаты. Я бы порекомендовал немного почитать о Обещания, чтобы прояснить, как они работают. Один из способов переписать это:
export function registerUser(email, password) {
result = firebase.auth().createUserWithEmailAndPassword(email, password).then((res) => {
console.info("res: ", res)
return res;
})
.catch((error) => {
var errorCode = error.code;
var errorMessage = error.message;
alert(errorMessage);
});
return result;
}
Похоже, ваша новая цель - достичь двух вещей: 1. Вы хотите, чтобы ваш условный оператор
ifсрабатывал. 2. Вы хотели бы передать свой объектresultsдочернему компоненту. Если это так, то вы всегда можете упростите условное выражение до простого:if (result), поскольку объект всегда будет истинным (medium.com/@ariel.salem1989/…). Чтобы передать результаты следующему компоненту, просто следуйте документации: reactnavigation.org/docs/en/params.html