Почему firebase выдает ошибку разрешения после выхода? - PullRequest
0 голосов
/ 15 апреля 2020

В собственном приложении-реактиве отправка действия, которое вызывает firebase-auth для выхода, завершается ошибкой разрешения firebase:

enter image description here

Вот метод внутри компонента ящика, который отправляет действие:

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);
                });
        });
    };
};

наблюдатель состояния авторизации отписан в функции входа в систему, так что же вызвало это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...