Новый знак Google в Android
Я пытаюсь получить идентификатор токена пользователя, используя новые сервисы Google Play 8.3, и, как задокументировано, я передаю идентификатор сервера:
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.server_client_id))
.requestEmail()
.build();
но я все еще получаю неуспешный результат, как показано ниже:
{statusCode=unknown status code: 12501, resolution=null}
и задокументировано здесь GoogleSignInStatusCodes
Вход был отменен пользователем. т. е. пользователь отменил некоторые решения для входа, например, выбор аккаунта или согласие OAuth.
Постоянное значение: 12501
Это не мой случай, так как я уже выбрал аккаунт. Есть идеи, в чем может быть причина?
32 ответа
Поскольку приложение запрашивает вход Google из веб-представления, нам необходимо создать идентификатор клиента аутентификации веб-приложения v2.0.
Перейти к учетным данным API Google
Выберите свой проект Android в верхнем левом углу
Нажмите Создать учетные данные -> Идентификатор клиента OAuth -> Выбрать веб-приложение.
Нажмите Ok
Теперь, если вы синхронизировали Android Studio с Firebase (вошли в систему), просто пересоберите проект. В противном случае загрузите обновленный файлgoogle-services.json и замените существующий.
Это должно работать нормально.
У меня такая же проблема. Вероятно, я не выполнил эти шаги должным образом, когда впервые создал google-services.json и добавил в проект firebase, и даже после выполнения всех описанных здесь шагов, я не смог решить проблему. Наконец-то мне удалось подключиться к FireBase из Android Studio, как описано здесь. Я прошел первые два шага и скомпилировал снова, код наконец заработал.