在执行 createUserWithEmailAndPassword 后,使用 sendEmailVerification React Native 检查用户电子邮件

React Native check user email with sendEmailVerification after createUserWithEmailAndPassword is perform

我已经分配了一个任务来编写代码,以便在用户在基于 React Native 的注册屏幕中注册后向用户发送电子邮件验证。创建新用户是在一个名为 AuthProvider.js 的 js 文件中处理的。在 AuthContext.Provider 的 return 值之一中,有一个处理创建新用户的操作,代码如下所示,运行正常。

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

上面的 return true 代码用于在注册屏幕中进行检查。如果我希望 return 仅当验证电子邮件发送给他们并被单击的条件时才显示真实值。我该怎么做,我可以得到任何指导吗?

我对 react-native 了解不多,但在 android studio 中,当我们发送验证电子邮件以及用户单击它时。我们有 firebase 功能来检查用户是否点击了验证 link。

  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.

        }

希望对您有所帮助,给您一些思路...

您可以通过这种方式将 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
  }

只有在发送电子邮件时才会 return 为真。如果函数中有任何错误,它将触发 catch 并且函数将 return false.