Я думаю, что здесь есть две разные проблемы в одной строке кода. Во-первых, кажется, что в вашем назначении есть несоответствие левого типа получения из возвращаемого типа. Из того, что я вижу по ссылке API Java FirebaseAuth , сигнатура метода:
FirebaseToken verifyIdToken(String token)
Итак, verifyIdToken
возвращает FirebaseToken
, но вы пытаетесь присвоить его Task<FirebaseToken>
, который является другим несовместимым типом. Во-вторых, Task<FirebaseToken>
также является недопустимым типом, который следует использовать, поскольку этот класс Task
не является универсальным, поэтому его вообще нельзя параметризировать. Это ошибка, которую вы видите от компилятора, но эта деталь становится неактуальной, если вы вообще отказываетесь от использования Task
, потому что это не нужно:
FirebaseToken firebaseToken = FirebaseAuth.getInstance().verifyIdToken(authorizationHeader.replace("Bearer ", ""));
Просто удалите весь ваш другой код, пытаясь использовать Task
и Tasks.await()
.
Похоже, вы могли смешивать и сопоставлять синхронные и асинхронные источники информации о том, как сделать этот вызов. Поскольку код, который вы написали, собирался немедленно дождаться выполнения асинхронной задачи, вам, вероятно, следует просто придерживаться синхронной версии API (verifyIdToken()
) вместо того, чтобы пытаться использовать асинхронный вариант (verifyIdTokenAsync()
), что могло привести к некоторой путанице при попытке следовать примерам.