Итак, я реализовал Firebase Auth & AuthUI и успешно использовал поставщика авторизации Google для входа в систему. Тем не менее, сейчас я пытаюсь получить доступ к API Google, но у меня появляется ошибка входа при попытке доступа к ним. Приведенный ниже код пытается подключиться к Google Fit.
val account = GoogleSignIn.getAccountForExtension(requireContext(), fitnessOptions)
Fitness.getHistoryClient(requireContext(), account)
.readDailyTotal(DataType.TYPE_STEP_COUNT_DELTA)
.addOnSuccessListener { r ->
val first = r.dataPoints.first()
...
}
.addOnFailureListener { e ->
...
}
. В этот момент я получаю сообщение об ошибке:
com.google.android.gms.common.api.ApiException: 4: The user must be signed in to make this API call.
Я отладил процесс проверки подлинности Firebase и могу обратите внимание, что в текущем FirebaseUser
есть два провайдера: один Google и один Firebase, который похож на то, что вместо аутентификации моего приложения с Google, Firebase сам себя аутентифицирует, а затем аутентифицирует мое приложение с Firebase.
Я Я уверен, что могу удалить AuthUI и вручную выполнить реализацию единого входа Google (согласно документам Google), но я действительно не хочу этого, поскольку я планирую включить почти все провайдеры аутентификации, и я не хочу чтобы все их кодировать вручную (не говоря уже о том, чтобы делать все макеты и т. д. c)
Так что, если кто-нибудь знает, как получить доступ к API Google / зарегистрированному в аккаунте Google от пользователя, авторизованного в Firebase, я ' Буду рад это услышать!
Заранее благодарен за любую помощь, которую вы можете оказать!