Android Firebase无法刷新电子邮件验证状态 [英] Android Firebase cannot refresh email verification status

查看:74
本文介绍了Android Firebase无法刷新电子邮件验证状态的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的Android应用中,我正在创建用户并发送验证电子邮件.当用户通过单击收到的电子邮件中的链接进行验证时,我想进入下一页.但是,验证状态没有更新,因此我无法继续.我尝试退出并再次登录,但可以,但是我不想以此方式刷新状态.有什么想法吗?

In my Android app, I am creating user and sending verification email. I want to proceed to the next page when the user has verified by clicking the link in the email received. However, the verification status didn't update so I cannot proceed. I have tried signing out and signing in again which works but I don't want to refresh the status in this way. Any ideas?

这是我的代码:

public void onClickContinueBtn() {
   final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
   user.reload().addOnCompleteListener(new OnCompleteListener<Void>() {
       @Override
       public void onComplete(@NonNull Task<Void> task) {
           if(task.isSuccessful()) {
               if(!user.isEmailVerified()){
                   // not verified block
                   // get into here even if verified
               } else {
                   // email verified, go to next page
               }
           } else {
               // do nothing, or show error
           }
       }
   });
}

推荐答案

我遇到了同样的问题.我正在使用FirebaseUI,即使尚未验证电子邮件,它也会自动在Firebase DB上创建用户.但是Firebase允许您使用方法user.isEmailVerified检查电子邮件是否已通过验证.两种可能性:

I had same issue. I'm using FirebaseUI and automatically it creates user on Firebase DB even if email has not yet been verified. But Firebase give you possibility to check if email has been verified or not by means of method user.isEmailVerified.Two possibilities:

  1. 如果您只想确保在验证电子邮件后才能访问您的应用程序:您可以在用户登录后打开一个对话框,等待验证.要自动取消对话框(仅在验证电子邮件时),您可以向该变量添加观察者,以便可以访问您的应用.
  2. 如果在不验证电子邮件的情况下也允许访问您的应用程序,则可以使用boolean isEmailVerified对其进行检查.请记住,您必须使用FirebaseUser上的reload()方法刷新当前用户.请注意,该布尔值的更新不是瞬时的

这篇关于Android Firebase无法刷新电子邮件验证状态的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆