Firebase onAuthStateChanged вызывается дважды при входе в систему - PullRequest
1 голос
/ 25 апреля 2019

Я новичок в Firebase. Я пытаюсь войти, используя React + Redux. Когда я нажимаю «Войти», он входит в систему один раз, затем снова вызывается onAuthStateChanged с res, равным нулю, что возвращает меня обратно

Вот мой сервис Firebase:

const initFirebase = () => {

    firebase.initializeApp(config.firebase)

    firebase.auth().onAuthStateChanged((res) => {
        console.log('Firebase - onAuthStateChanged', {res})

        if(res) {
            const formData = {
                email: res.email,
                uid: res.uid,
            }

            // Check if email exists against local API
            APIAuthService(endpoint, 'post', formData).then(response => {
                if(response.status) {
                    let userData = response.data
                    store.dispatch(authAction.login(userData))
                }
            })
        }
        else {
            store.dispatch(authAction.logout())
        }
    })
}

Также мой компонент Login.js можно посмотреть здесь (строка: 41) https://pastebin.com/qcRH6gv2

1 Ответ

0 голосов
/ 25 апреля 2019

Да, это нормально, onAuthStateChanged будет продолжать срабатывать.Вы можете запретить многократные звонки с помощью этого кода:

var authFlag = true;
firebase.auth().onAuthStateChanged((res) => {
    if(res && authFlag) {
        console.log('Firebase - onAuthStateChanged', {res})
        authFlag = false;
        //rest of your code
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...