private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {
try {
GoogleSignInAccount account = completedTask.getResult(ApiException.class); //exception is here
// Signed in successfully, show authenticated UI.
System.out.println("google token ---> " + account.getIdToken());
} catch (ApiException e) {
// The ApiException status code indicates the detailed failure reason.
// Please refer to the GoogleSignInStatusCodes class reference for more information about this error.
e.printStackTrace();
}
}
Почему я получаю com.google.android.gms.common.api.ApiException: 10:?
Ответ 1
Если вы используете Firebase
и попробуйте debug app
:
1. Сначала получите ключ отладки SHA-1
:
- Нажмите на
Gradle
(на правой боковой панели вы увидите Gradle Bar) - Нажмите на
Tasks
- Нажмите на
Android
- Двойной щелчок по
signingReport
(Вы получитеSHA-1
иMD5
)
2. Добавьте новые учетные данные в консоль API
- Перейдите по ссылке https://console.developers.google.com/apis/credentials.
- Создать новый
OAuth Client ID
- Имя:
Android client (for debug)
(пример) - Отпечаток сертификата подписи: скопируйте и вставьте ключ отладки
SHA-1
- Введите название пакета, затем сохраните
3. Добавьте свой ключ в ваш проект Firebase
:
-
Перейдите в
Project settings
→SHA certificate fingerprints
→ Добавить ключSHA-1
приложения отладки. -
Затем вы можете обновить файл
google-services.json
в своем проекте Android.
Меня устраивает.
Ответ 2
Этот код состояния означает, что вы предоставляете идентификатор клиента неизвестного сервера. В https://console.developers.google.com/apis/credentials в вашем проекте вам может потребоваться сгенерировать: идентификатор клиента OAuth → веб-приложение и использовать этот идентификатор клиента веб-приложения в приложении для Android.
Ответ 3
Код ошибки ApiException 10 является ошибкой разработчика. Вы получаете эту ошибку, когда ваше приложение Firebase не настроено должным образом. Один верный случай - когда вы не предоставляете отпечаток SHA1 для своего приложения для Android, когда хотите использовать аутентификацию Firebase с Google Signin. (Это требование для входа в Google). Поэтому предоставьте отпечаток SHA1, загрузите файл конфигурации google-services.json в папку своего приложения и выполните сборку. Тебе должно быть хорошо идти.
Вход в Google автоматически настраивается в подключенных iOS и веб-приложениях. Чтобы настроить вход в Google для своих приложений Android, необходимо добавить отпечаток SHA1 для каждого приложения в настройках проекта.
Проверьте это Общие коды ошибок состояния
Ответ 4
Если вы удалите эту строку, она будет работать:
System.out.println("google token ---> " + account.getIdToken());
Это потому, что у вас нет запроса к idToken:
.requestIdToken(getString(R.string.google_app_id))
где app_id
будет иметь значение "Идентификатор клиента OAuth → Веб-приложение"
Ответ 5
Я решил эту проблему с помощью этих шагов:
1). Перейдите на страницу https://console.developers.google.com/ и удалите (клиент Android), если он создан.
2). Нажмите "Создать учетные данные", нажмите "OAuthClientID" и выберите "Android".
3). скопируйте и вставьте свой отпечаток SHA 1
4). введите название вашего пакета, затем сохраните
5). Перейти на console.firebase.com
6). скачать google-service.json переместить его в свой проект в каталог приложения
7). Откройте google-service.json, найдите тип идентификатора клиента 3 и используйте его как default_web_client_id.
8). Запустите ваше приложение