【发布时间】:2023-03-03 18:15:01
【问题描述】:
所以情况如下:
1) 用户已登录。最后生成的令牌是不久前生成的,并且已过期。即使没有,问题也不会发生。
2) 已安装应用更新。 (不是android studio即时运行的东西,实际签名的apk具有更高的应用版本和appversioncode)
3) 用户打开应用程序,然后我用来刷新 id 令牌的常规代码运行。
4) 没有一个听众被击中并且永远没有超时
这是一个错误还是我在这里做错了什么?
清除应用数据并重新启动会清除所有问题。在这种情况下,代码运行良好。更新后才会卡住。
注意:我已将 forceRefresh 布尔值设置为 false,因为此代码在每次应用启动时都会运行,并且我不希望调用不必要的 id 令牌创建以防世代限制。当且仅当令牌已过期时,false 布尔值才会刷新令牌。
FirebaseAuth.getInstance().getCurrentUser().getIdToken(false).addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
@Override
public void onComplete(@NonNull Task<GetTokenResult> task) {
if (task.isSuccessful()) {
//logic to proceed further
}
}).addOnFailureListener(new OnFailureListener() {
@SuppressLint("SetTextI18n")
@Override
public void onFailure(@NonNull Exception e) {
if(e instanceof FirebaseAuthInvalidUserException){
//Do stuff to log out the user session
}else{
//Some other exception occurred, let the user retry
}
}
});
P.S 在这一切之前我确实进行了一次无效性检查,以查看是否确实存在用户。
【问题讨论】:
标签: android firebase firebase-authentication