Firebase signInWithEmailAndPassword не запускает .then () до тех пор, пока не изменится фокус пользовательского интерфейса - PullRequest
4 голосов
/ 25 апреля 2019

Я использую Firebase .signInWithEmailAndPassword(email, password).then() для аутентификации в реактивном проекте Android.

У меня есть функция, вызываемая для события кнопки onPress. Аутентификация имеет место, но по какой-то причине .then() не срабатывает, пока я не коснусь другого места на экране. Он с радостью подождет 5 минут, пока я не нажму куда-нибудь, кроме кнопки, чтобы выстрелить.

Я вижу, что аутентификация происходит. Это просто обещание .then(), которое зависает до тех пор, пока фокус не сместится с кнопки.

Я использую нативные библиотеки 0.59.5 и firebase 5.1.0. Я пробовал console.logging каждого шага, и ясно, что then() - это то, где он не работает Странно catch() работает сразу.

export const loginUser = ({ email, password }) => {
  return dispatch => {
    dispatch({ type: LOGIN_USER })

    firebase
      .auth()
      .signInWithEmailAndPassword(email, password)
      .then(user => loginUserSuccess(dispatch, user))
      .catch(() => {
        firebase
          .auth()
          .createUserWithEmailAndPassword(email, password)
          .then(user => loginUserSuccess(dispatch, user))
          .catch(loginUserFail(dispatch))
      })
  }
}

const loginUserFail = dispatch => {
  dispatch({ type: LOGIN_USER_FAIL })
}

const loginUserSuccess = (dispatch, user) => {
  console.log('Firing success')
  dispatch({
    type: LOGIN_USER_SUCCESS,
    payload: user
  })
}

В приведенном выше примере loginUserFail будет запущен немедленно, если аутентификация не удалась, но loginUserSuccess будет ждать бесконечно, пока я не нажму где-нибудь еще в приложении.

1 Ответ

0 голосов
/ 09 июля 2019

Есть ли у вас удаленный отладчик, открытый в браузерах Chrome? Закройте его (отладчик), перезагрузите приложение в симуляторе, и оно будет работать как положено.

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