这个问题在这里已有答案:
在我的应用程序中,当用户输入电子邮件和密码时,他可以注册并登录 . 但是如何确保注册用户是电子邮件所有者而不使用某人的电子邮件(我使用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
1 回答
您可能需要更新Firebase SDK的版本 . auth模块中的Firebase用户可以使用user.SendEmailVerification函数发送电子邮件验证:
例如
如果您想限制对应用程序的访问,则需要使用user.isEmailVerified() . 具体使用方式取决于您希望应用展示的行为 . 请注意,FirebaseUser对象已缓存,因此您可能需要调用.getCurrentUser() . reload() . 您可以在计时器上或用户返回应用程序时执行此操作 . 或者,您可以在登录后进行检查,如果未经验证,请将其注销,并显示一条消息,说明它们未经过验证,并等待他们再次尝试 .
有关更完整的讨论,请参阅:https://firebase.googleblog.com/2017/02/email-verification-in-firebase-auth.html