Firebase предоставляет AuthResult при обратном вызове для входа пользователя с использованием startActivityForSignInWithProvider (в моем случае провайдер - apple на платформе Android). Кажется, я не могу извлечь из него idToken правильным (синхронным) способом.
Пока я нашел два варианта, оба не удовлетворяют:
Вариант 1: приведение
((OAuthCredential)authResult.getCredential()).getIdToken()
Это работает, но я не уверен, что это безопасный бросок. Плис, я думаю, если бы Firebase хотел, чтобы мы получили idToken таким образом, они бы добавили его в AuthCredential.
Вариант 2: выборка от пользователя
authResult.getUser().getIdToken(false).addOnCompleteListener { ... }
Это кажется безопасным решением, но это асин c метод. Кажется, не имеет смысла выполнять другой asyn c метод после того, как пользователь только что вошел в систему вручную (это то, что я делаю для существующего пользователя).