【问题标题】:Firebase: How to check if email is verified on run timeFirebase:如何检查电子邮件是否在运行时验证
【发布时间】:2021-05-31 11:35:27
【问题描述】:

所以流程会是这样的:

  1. 用户通过 firebase 使用电子邮件和密码登录
  2. 如果电子邮件通过验证,他们将转到主要活动 否则他们会去验证电子邮件活动

我想做的是当他们在验证电子邮件活动时,我将在 onCreate 方法中发送一封验证电子邮件,然后如果电子邮件经过验证(在运行时),我会将用户发送到主要活动。

我知道检查用户是否验证电子邮件的功能

firebaseAuth.getCurrentUser().isEmailVerified()

这里的问题是如何使用此功能(或其他功能)来检查用户是否实时验证他们的电子邮件。

我尝试过使用 while 循环来执行此操作,但它没有按预期工作:

firebaseAuth.getCurrentUser().sendEmailVerification().addOnSuccessListener(new OnSuccessListener<Void>() {
        @Override
        public void onSuccess(Void aVoid) {
            //verify email sent
            Alert("Verification email send");

            //PROBLEM STARTS HERE
            boolean v = true;
            while(v){
                if(firebaseAuth.getCurrentUser().isEmailVerified()){
                    v = false;
                    break;
                }
            }
            if(!v){
                Alert("Email verified");
                startActivity(new Intent(getApplicationContext(), MainActivity.class));
                finish();
            }
        }
    });

【问题讨论】:

    标签: java android firebase firebase-authentication


    【解决方案1】:

    您可以在函数中添加按键事件。 如果用户按下任意键,那么您将通过调用该函数来检查当时的电子邮件ID。您不需要while循环。 如果您发现用户按下了任意键,只需调用该函数即可。

    示例代码:

    @Override
    public Boolean onKeyUp(int keyCode, KeyEvent event) {
        if(firebaseAuth.getCurrentUser().isEmailVerified()){
            startActivity(new Intent(getApplicationContext(), MainActivity.class));
            finish();
        }
        return super.onKeyDown(keyCode, event);
    }
    

    试试这样的东西,而不是 while 循环。

    【讨论】:

      猜你喜欢
      • 2019-09-04
      • 2021-05-16
      • 2023-01-23
      • 1970-01-01
      • 2012-12-31
      • 2020-11-13
      • 2021-05-17
      • 2011-08-30
      • 2021-03-13
      相关资源
      最近更新 更多