В собственном приложении-реактиве отправка действия, которое вызывает firebase-auth для выхода, завершается ошибкой разрешения firebase:
![enter image description here](https://i.stack.imgur.com/Z1937.png)
Вот метод внутри компонента ящика, который отправляет действие:
logout = () => {
this.props
.logoutUser()
.then(() => {
this.props.navigation.navigate('Login');
})
.catch((err) => alert(err));
};
, а вот действие logout
:
export const logoutUser = () => {
return (dispatch) => {
return new Promise((resolve, reject) => {
firebase
.auth()
.signOut()
.then(() => {
dispatch({ type: types.RESET_APP });
console.log('Dispatching types.RESET_APP');
resolve();
})
.catch((error) => reject(error.message));
});
};
};
При выполнении экран возвращается к экрану входа в систему как желательно. Журналы консоли Dispatching types.RESET_APP
, а затем отображается сообщение об ошибке выше.
authStateChanged Listener в моем логине:
export const loginUser = (email, password) => {
return (dispatch) => {
dispatch({ type: types.LOGIN_USER });
// listen for change in auth state before signing in
return new Promise((resolve, reject) => {
firebase
.auth()
.signInWithEmailAndPassword(email, password)
.then((userCredential) => {
console.log('User Credential: ' + JSON.stringify(userCredential));
const unsubscribe = firebase.auth().onAuthStateChanged((user) => {
if (user) {
console.log('Logged in: ' + user.email);
loginUserSuccess(dispatch, user);
resolve(user);
} else {
console.log('Authentication state changed, user object is null...');
//resetAuth();
}
});
// No longer need to listen to auth state
unsubscribe();
})
.catch((error) => {
console.log('Error during Email sign-in: ' + error);
loginUserFail(dispatch, error.message);
});
});
};
};
наблюдатель состояния авторизации отписан в функции входа в систему, так что же вызвало это?