繁体   English   中英

Firebase Auth UI Android,getIdToken() 返回的任务永远不会完成

[英]Firebase Auth UI Android, task returned by getIdToken() never completes

成功登录后,我无法使用 getIdToken() 方法获取 ID 令牌。 此方法返回一个任务,而该任务永远不会完成。 在 Android 应用程序中使用 Firebase Auth UI 使用基本电子邮件 ID/密码身份验证。

new AuthUI.IdpConfig.EmailBuilder().build()

这是库版本:

implementation 'com.firebaseui:firebase-ui-auth:6.1.0'

这是我获取令牌的方式:

public String getIdToken(){

        String token = null;
        Task<GetTokenResult> task = FirebaseAuth.getInstance().getCurrentUser().getIdToken(true);
        while(!task.isComplete()){
        }
        if(task.isSuccessful()){
            token = task.getResult().getToken();
        }else{
            token = "token_gen_failed";
        }
        return token;
}

while 循环永远不会结束,因为任务永远不会完成。 如何等待这个任务? 此代码用于 firebase-UI-auth:3.2.2。 现在我正在尝试将这个库升级到 6.1.0。

请在这里提供任何帮助,尝试了很多东西。

我在日志中看到的是:

D/FirebaseAuth: Notifying id token listeners about user ( xxxxxxxxxx ).

你可以这样做

task.addOnCompleteListener(task -> {
   if(task.isSuccessful() & task.getResult() != null){
       token = task.getResult().getToken();
   }else{
     token = "token_gen_failed";
   }
   //do here whatever you want to do with token;
} 

如果您想将其用作单独的功能,请告诉我。 你必须为它做一些额外的任务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM