Firebase Auth getIdToken在更新后卡住

时间:2018-05-07 21:12:32

标签: android firebase firebase-authentication

情况如下:

1)用户已登录。之前生成的最后一个令牌已经过期。即使没有,问题也没有发生。

2)安装了应用更新。 (不是android studio即时运行的东西,具有更高的应用程序版本和appversioncode的Actual signed apk)

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我确实在所有这些之前进行了无效检查,以确定是否确实存在用户。

1 个答案:

答案 0 :(得分:0)

对于任何想知道这一点的人,我提出了Firebase支持的票证,结果发现它是Firebase Auth 15.1.0中的一个错误

根据发行说明,他们修改了令牌刷新逻辑,可能这就是引入错误的地方。

根据我的测试,系统可以正常工作到12.0.1版本。如果您打算使用类似的功能,请不要更新到15.1.0。