Новый знак 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.

  1. Перейти к учетным данным API Google

    Выберите свой проект Android в верхнем левом углу

    2

  2. Нажмите Создать учетные данные -> Идентификатор клиента OAuth -> Выбрать веб-приложение.

  3. Нажмите Ok

  4. Теперь, если вы синхронизировали Android Studio с Firebase (вошли в систему), просто пересоберите проект. В противном случае загрузите обновленный файлgoogle-services.json и замените существующий.

    Это должно работать нормально.

У меня такая же проблема. Вероятно, я не выполнил эти шаги должным образом, когда впервые создал google-services.json и добавил в проект firebase, и даже после выполнения всех описанных здесь шагов, я не смог решить проблему. Наконец-то мне удалось подключиться к FireBase из Android Studio, как описано здесь. Я прошел первые два шага и скомпилировал снова, код наконец заработал.

Другие вопросы по тегам