使用Google的Firebase AuthStateListener,我不确定如何检测Auth令牌是否已过期 . 我正在使用电子邮件和密码身份验证,并且第一次用户打开应用程序时,侦听器正常工作,并在后续应用程序启动时自动登录 .

当他们的登录令牌到期并且用户必须重新进行身份验证时会出现问题 . AuthStateListener只是将它们记录下来,但Firebase服务拒绝它们访问,因为它们的令牌已过期 .

我的听众代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_selector);

    mRef = FirebaseDatabase.getInstance().getReference();
    auth = FirebaseAuth.getInstance();
    firebaseAuth = new FirebaseAuth.AuthStateListener() {
        @Override
        public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
            if (firebaseAuth.getCurrentUser()!= null){
                Toast.makeText(getApplicationContext(), "Logged in", Toast.LENGTH_SHORT).show();

                changeToNextFragment();
            } else {
                Toast.makeText(getApplicationContext(), "You are not currently logged in.", Toast.LENGTH_SHORT).show();
                changeToLogin();
            }
        }
        };

听众在这里被称为:

@Override
protected void onStart() {
    super.onStart();
    auth.addAuthStateListener(firebaseAuth);
}

对FirebaseAuth对象进行适当测试以查看令牌是否已过期?