簡體   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