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

时间:2018-04-23 21:03:04

标签: android firebase firebase-authentication

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

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

如果上述任何一项,该怎么做?

1 个答案:

答案 0 :(得分:5)

您可能需要更新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