Firebase Auth UI Android, задача, возвращаемая getIdToken (), никогда не завершается - PullRequest
0 голосов
/ 01 декабря 2019

После успешного входа в систему я не могу получить токен id с помощью метода getIdToken (). Этот метод возвращает задачу, и задача никогда не завершается. Использование базовой аутентификации с использованием идентификатора электронной почты и пароля с использованием пользовательского интерфейса Firebase Auth в приложении для Android.

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 ).

1 Ответ

1 голос
/ 01 декабря 2019

Вы можете сделать это как

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;
} 

Если вы хотите использовать это как отдельную функцию, дайте мне знать. Для этого вам нужно выполнить дополнительное задание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...