执行 createUserWithEmailAndPassword 后,使用 sendEmailVerification 反应本机检查用户电子邮件

Posted

技术标签:

【中文标题】执行 createUserWithEmailAndPassword 后,使用 sendEmailVerification 反应本机检查用户电子邮件【英文标题】:React Native check user email with sendEmailVerification after createUserWithEmailAndPassword is perform 【发布时间】:2021-10-30 16:01:05 【问题描述】:

在用户在基于本机反应的注册屏幕中注册后,我已经完成了一项关于向用户发送电子邮件验证的代码的任务。创建新用户是在一个名为 AuthProvider.js 的 js 文件中处理的。在 AuthContext.Provider 的返回值之一中,有一个处理创建新用户的操作,如下所示并且工作正常。

    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 代码用于登录注册屏幕。如果我希望仅在验证电子邮件发送给他们并被点击的条件下返回真值。我该怎么做?我可以得到任何指导吗?

【问题讨论】:

【参考方案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.

        

希望对你有所帮助,给你一些想法……

【讨论】:

啊,我明白了。所以会有firebase功能来发送电子邮件验证并检查他们是否点击了电子邮件验证链接是吗?顺便说一句,感谢您提供一些想法 是的,这些是 firebase 功能。 :)

以上是关于执行 createUserWithEmailAndPassword 后,使用 sendEmailVerification 反应本机检查用户电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

jvm的解释执行与编译执行

Jmeter--多个线程组顺序执行和并行执行

小记---------手动执行脚本正常执行,使用crontab定时执行时 不执行

同步执行与异步执行

js函数执行顺序,怎麼让一个函数执行完再执行下面的程序

java中定时执行任务,为啥方法没有执行完就不执行了?