我在我的应用中使用Firebase身份验证(Google,Facebook和电子邮件)。一切正常,但有时我会,
W/PersistentConnection: pc_0 - Authentication failed: expired_token (Auth token is expired)
但如果我检查一下,
FirebaseAuth.getInstance().getCurrentUser() == null
每次都会返回 false ,因此当前用户不为空(根据Firebase)
我也实现了这个,
FirebaseAuth.getInstance().addAuthStateListener(firebaseAuth -> {
if (firebaseAuth.getCurrentUser() == null) {
Intent intent = AuthFlowActivity.getCallingIntent(AuthFlowActivity.FORCE_LOGOUT);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
activityExitAnimation(BaseAppActivity.this);
}
});
侦听器被触发,但此处当前用户永远不会为空。
如果我尝试在此阶段将任何数据推送到实时数据库,则不会推送任何内容。我也试过在这个阶段上传文件,它失败并被拒绝权限。
为什么会出现这种差异?
如果令牌已过期,为什么当前用户永远不会为空?它应该是。如果没有,如果用户已登录并且他/她的身份验证令牌未过期,如何正确识别 ?