【问题标题】:Email firebase using Firebase auth doesn't run correctly?使用 Firebase 身份验证的电子邮件 firebase 无法正常运行?
【发布时间】:2021-01-26 11:30:47
【问题描述】:

我正在使用 Firebase 身份验证和电子邮件验证来实现用户注册,如下所示:

private void register(String email, String password) {
    FirebaseAuth auth FirebaseAuth.getInstance();

        auth.createUserWithEmailAndPassword(email, password)
            .addOnSuccessListener(new OnSuccessListener<AuthResult>() {
                @Override
                    public void onSuccess(AuthResult authResult) {

                        // is user registered yet?
                        if (authResult.getUser() != null) {

                            // yes, but email is not verified yet. so send verication link
                            if (!authResult.getUser().isEmailVerified()){
                                final FirebaseUser user = authResult.getUser();
                                
                                user.sendEmailVerification().addOnCompleteListener(new OnCompleteListener<Void>() {
                                    @Override
                                    public void onComplete(@NonNull Task<Void> task) {

                                        if (task.isSuccessful()) {
                                            Toast.makeText(getApplicationContext(),
                                                    "Verification link has been sent to " + user.getEmail(), Toast.LENGTH_SHORT).show();
                                        } else {
                                            Toast.makeText(getApplicationContext(), "Error: cannot send verification link.", Toast.LENGTH_SHORT).show();
                                        }
                                    }
                                });
                            }
                            
                            // yes, and email is already verified 
                            else {
                                Intent iii = new Intent(getApplicationContext(), MainActivity.class());
                                startActivity(iii);
                               
                            }
                        }
                    }
                })
                // registration error....
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
                    }
                });
    }

用户注册完成后,我可以在 Firebase 控制台内的身份验证菜单上看到该电子邮件。 然后我点击电子邮件上的验证链接,在浏览器上收到这条消息:

您的电子邮件已通过验证您现在可以使用新帐户登录

所以注册成功了,可以登录了吧?

但是LoginActivity上的这些代码:

FirebaseUser user = auth.getCurrentUser();
return user.isEmailVerified();

返回假。所以不知何故,电子邮件验证过程没有成功完成。 这里有什么问题?

我使用的是 compileSdkVersion 29 和 firebase-auth 19.3.2。

【问题讨论】:

    标签: android firebase-authentication


    【解决方案1】:

    此代码正在运行

    FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
    if (user != null) {
    
        boolean emailVerified = user.isEmailVerified();
    if(emailVerified ){
    //email verified
    }
    }
    

    【讨论】:

      猜你喜欢
      • 2023-03-18
      • 2018-02-10
      • 2019-07-13
      • 1970-01-01
      • 2018-09-22
      • 2017-04-22
      • 2021-03-26
      • 2018-11-11
      • 2020-11-22
      相关资源
      最近更新 更多