Android Firebase AuthStateListener电子邮件已验证

Fad*_*ara 5 java android firebase firebase-authentication

我有一个FireIn的SignInActivity AuthStateListener

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);
Run Code Online (Sandbox Code Playgroud)

成功注册新帐户后,我setVisibity(View.Visible)将在活动中带有EditTextEmail&的验证页VerifyButton(以防有人想重新发送电子邮件验证)。

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

我需要类似的东西 OnFirebaseAuthUserEmailVerifiedListener

我是Firebase的新手,如果无法实现此目标,请给我建议。

Cen*_*ury 5

这个链接真的很有用。

因为即使在我点击电子邮件上的验证链接后,FirebaseAuthState 也从未改变。

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

请注意,FirebaseUser 对象缓存在应用程序会话中,因此如果您想检查用户的验证状态,最好调用.getCurrentUser().reload()更新。