Реагируйте на собственную проверку электронной почты пользователя с помощью sendEmailVerification после выполнения createUserWithEmailAndPassword

# #reactjs #firebase #react-native #firebase-authentication #react-native-firebase

Вопрос:

Я дал задание коду об отправке подтверждения электронной почты пользователю после того, как он зарегистрировался на экране регистрации, который основан на реакции. Создание нового пользователя обрабатывается в одном файле js под названием AuthProvider.js. В одном из возвращаемых значений AuthContext.Провайдер, есть одно действие, которое обрабатывает создание нового пользователя, которое показано ниже и работает нормально.

     registerWithEmail: async (userDetails) => {
                        const { email, password } = userDetails;
    
                        return await auth()
                            .createUserWithEmailAndPassword(email, password)
                            .then(() => {
                       //wish to add on the send email verification action here
                                return true;
                            });
                    }
 

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

Ответ №1:

Вы можете использовать async-await синтаксис с `try-catch таким образом.

 registerWithEmail: async (userDetails) => {
  try {
    const { email, password } = userDetails;
    const {user} = await auth().createUserWithEmailAndPassword(email, password)
    await user.sendEmailVerification()
    return true
  } catch (e) {
    console.log(e)
    return false
  }
 

Он вернет значение true только при отправке электронного письма. Если в функции есть какая-либо ошибка, она вызовет catch, и функция вернет false.

Ответ №2:

Я не знаю больше о react-native, но в Android studio, когда мы отправляем электронное письмо с подтверждением и когда пользователь нажимает на него. У нас есть функция firebase, чтобы проверить, нажал пользователь на ссылку для подтверждения или нет.

   FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();

        if (user.isEmailVerified())
        {
            // user is verified, so you can finish this screen or send user to other screen which you want.

        }
 

я надеюсь, что это поможет вам и даст вам некоторое представление…

Комментарии:

1. А, понятно. Таким образом, будут функции firebase для отправки проверки электронной почты и проверки того, нажимают ли они на ссылку проверки электронной почты, не так ли? кстати, спасибо, что подали какую-то идею

2. Да, это функции firebase. 🙂