android - 如何在 firebase 身份验证中验证用户电子邮件?

标签 android firebase firebase-authentication

<分区>

在我的应用程序中,当用户输入电子邮件和密码时,他可以注册并登录。 但是我怎样才能确保注册用户是电子邮件所有者而不是使用某人的电子邮件(我正在使用 firebase 进行身份验证)。

  • 要求用户在注册时验证他们的电子邮件?
  • 阻止他们登录,除非他们激活他们的电子邮件?

如果有上述情况,该怎么做?

最佳答案

您可能需要更新您的 Firebase SDK 版本。 auth 模块中的 Firebase 用户可以使用函数 user.SendEmailVerification 发送电子邮件验证:

例如

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

user.sendEmailVerification()
        .addOnCompleteListener(new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                if (task.isSuccessful()) {
                    Log.d(TAG, "Email sent.");
                }
            }
        });

如果您想限制对应用程序的访问,您需要使用 user.isEmailVerified() .您究竟如何使用它取决于您希望您的应用程序表现出什么样的行为。请注意,FirebaseUser 对象已缓存,因此您可能需要调用 .getCurrentUser().reload()。您可以在计时器上执行此操作,也可以在用户返回应用程序时执行此操作。或者,您可以在登录后检查此项,如果他们未通过验证,请将其注销,并显示一条消息,说明他们未通过验证,并等待他们重试。

有关更完整的讨论,请参阅: https://firebase.googleblog.com/2017/02/email-verification-in-firebase-auth.html

关于android - 如何在 firebase 身份验证中验证用户电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49989903/

相关文章:

ios - Firebase 身份验证错误 17010(由于登录尝试失败次数过多而禁用帐户访问)未强制执行?

android - 如何将我的应用程序分发给我的 friend ?

ios - 如何检索评论/帖子的键

node.js - 写入/更新不会触发 google 云函数,然后写入 firestore 会导致无限循环吗?

ios 10 Firebase 推送通知委托(delegate)方法未在后台模式下调用

ios - 如何修复 user = [AuthDataResult?] nil 和错误 - FIRAuthDomain 代码 17026

javascript - 使用 firebase 身份验证方法检查错误的正确方法是什么?

找不到 Android cmake 参数方法

android - 在哪里可以找到初始化 ORMLite 所需的 ApplicationContext?

java - 将上下文传递给多个线程是否安全?