草庐IT

java - Android Firebase AuthStateListener 电子邮件已验证

coder 2023-12-15 原文

我有一个带有 Firebase AuthStateListener 的 SignInActivity。

final FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();
final FirebaseAuth.AuthStateListener firebaseAuthListener = new FirebaseAuth.AuthStateListener() {
    @Override
    public void onAuthStateChanged(FirebaseAuth auth) {
        FirebaseUser user = auth.getCurrentUser();
        if (user != null && user.isEmailVerified()) {
            firebaseAuth.removeAuthStateListener(this);
            startActivity(new Intent(LoginActivity.this, MainActivity.class));
        }
    }
};
firebaseAuth.addAuthStateListener(firebaseAuthListener);

当我成功注册一个新帐户时,我在 Activity 中 setVisibity(View.Visible) 一个带有 EditTextEmailVerifyButton 的验证页面(以防有人想要重新发送电子邮件验证)。

我想做的是当我从我的电子邮件帐户验证我的电子邮件时,我希望该页面自动启动我的 MainActivity 而不是只是在我的 LoginActivity 中闲置与短信验证一样,当收到短信中的验证码时,应用会读取短信并导航到 MainActivity。是否可以通过电子邮件验证来实现这一点?因为即使在我点击电子邮件中的验证链接后,FirebaseAuthState 也从未改变。

我需要像 OnFirebaseAuthUserEmailVerifiedListener 这样的东西

我是 firebase 的新手,请就如何实现这一目标或是否不可能给我建议。

最佳答案

This link真的很有用。

Because the FirebaseAuthState never changed even after I click on verification link on my email.

那是因为用户被缓存了,需要重新加载用户:

Do note that the FirebaseUser object is cached within an app session, so if you want to check on the verification state of a user, it's a good idea to call .getCurrentUser().reload() for an update.

关于java - Android Firebase AuthStateListener 电子邮件已验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46580095/

有关java - Android Firebase AuthStateListener 电子邮件已验证的更多相关文章

随机推荐