Однако после просмотра (плохо написанной) документации , я остановился. После «Входа с помощью Google» все в порядке, пока я не получаю сообщение «NoCredentialException: нет доступных учетных данных», что имеет смысл.
Но тогда... как мне создать учетные данные?
Google предоставляет примеры создания учетных данных как для паролей, так и для ключей доступа, но я не могу найти никакой информации о создании учетных данных для кнопки «Войти через Google» (где-либо в Интернете).< /p>
«Кнопка «Войти с помощью Google» поддерживается диспетчером учетных данных с новейшей вспомогательной библиотекой идентификаторов Google»
(Как заявлено Android)
Итак, я использую .createCredentialAsync(), потому что именно это Google использовал в предоставленных примерах (и явно сказал это сделать здесь).
br />Однако Android Для createCredentialAsync требуется CreateCredentialRequest, и он принимает только три типа: «CreatePasswordRequest», «CreatePublicKeyCredentialRequest» и «CreateCustomCredentialRequest».
Здесь находится «вспомогательная библиотека идентификаторов Google». упомянутое в цитате выше, должно пригодиться. В библиотеке есть классы
GetGoogleIdOption и GetSignInWithGoogleOption, которые являются подклассами GetCustomCredentialOption.
Теперь вопрос заключается в том, как мне получить CreateCustomCredentialRequest класс (или его подкласс) для моего метода .createCredentialAsync().
Google «Новейшая вспомогательная библиотека идентификаторов» не предоставляет:
- подкласс CustomCredential и его Builder для SignInWithGoogle (он предоставляет для GoogleIdToken)
- Смешно длинный класс CreateSignInWithGoogleRequest (или класс CreateGoogleIdRequest), который является подклассом CreateCustomCredentialRequest class.
Прежде чем закончить, я хочу упомянуть еще одну вещь. В разделе «Регистрация через Google» говорится:
Если результаты не возвращаются после установки для setFilterByAuthorizedAccounts значения true при создании экземпляра запроса GetGoogleIdOption и его передаче GetCredentialsRequest, это указывает на отсутствие авторизованных учетных записей для входа. На этом этапе вам следует установить setFilterByAuthorizedAccounts(false) и call. Зарегистрируйтесь через Google.
Это мне не поможет, потому что:
- Это относится только к GetGoogleIdOption, а не к GetSignInWithGoogleOption.
- Нет объяснений, как «вызвать регистрацию через Google».
После создания экземпляра запроса на регистрацию в Google запустите процесс аутентификации аналогично тому, как указано в разделе «Вход с помощью Google».
Должен ли быть класс GetGoogleSignUpRequest?
Я что-то упускаю? Я где-то допустил глупую ошибку? Любая помощь по этому поводу была бы замечательной!
Для дополнительного контекста я привел весь свой код здесь: https://www.online-java.com/VjQw6cTKig
Подробнее здесь: https://stackoverflow.com/questions/776 ... credential
Мобильная версия