проверьте, успешно ли отправлено письмо с помощью firebase.auth (). sendPasswordResetEmail () - PullRequest
0 голосов
/ 23 апреля 2020

Я создаю приложение с реагировать нативно с Firebase аутентификацией. Я хочу показать диалоговое окно с предупреждением, которое сообщает пользователю, что «электронная почта для сброса пароля была отправлена», когда электронная почта была успешно отправлена ​​firebase.

Я пытался сделать это таким образом

    firebase
    .auth()
    .sendPasswordResetEmail(email)
    .then(Alert.alert('','Your password reset mail has been sent'))
    .catch(error => Alert.alert('Error', error.message));

, используя это окно предупреждения, всегда выполнялось независимо от того, отправлено письмо или нет. если есть какая-либо ошибка, отображаются два диалоговых окна с предупреждениями.

все, что я хотел сделать, - это предупреждать пользователя только тогда, когда электронное письмо было успешно отправлено, и при возникновении любой ошибки должно отображаться только окно с предупреждением об ошибке.

Помоги мне ...

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020
firebase.auth().sendPasswordResetEmail(email)
        .then(() => Alert.alert('', 'Your password resset mail has been sent'))
        .catch(error => Alert.alert('Error', error.message));
0 голосов
/ 23 апреля 2020

Я не уверен, что Alert.alert делает в вашем коде. Но если Alert.alert не возвращает функцию, то это может быть проблемой в коде здесь.

Promise.then и Promise.catch ожидают функции в качестве первого аргумента.

Вы можете попробуйте исправить это:

firebase
    .auth()
    .sendPasswordResetEmail(email)
    .then(() => Alert.alert('','Your password reset mail has been sent'))
    .catch(error => Alert.alert('Error', error.message));

Вместо прямого вызова Alert.alert в первом аргументе then, оберните его в анонимную функцию.

Надеюсь, это поможет

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