Итак, есть много вопросов по этому поводу и, казалось бы, много (несколько противоречивой) документации.
Я просто пытаюсь заставить пользователя войти в систему, чтобы отправить счет в таблицу лидеров Google Play Services вмое приложение.
Поэтому они нажимают «Показать таблицу лидеров», и я начинаю процесс проверки входа:
public void displayLeaderboard()
{
if (checkPlayServices() == true)
{
// First, sign in.
GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);
if (account == null)
{
// Need to get sign-in client?
if (_googleSignInClient == null)
{
// Configure sign-in to request the user's ID, email address, and basic profile. ID and basic profile are included in DEFAULT_SIGN_IN.
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN).build();
_googleSignInClient = GoogleSignIn.getClient(this, gso);
}
Intent signInIntent = _googleSignInClient.getSignInIntent();
startActivityForResult(signInIntent, CALLBACK_SIGN_IN_TO_GOOGLE_ACCOUNT);
}
else
{
actualDisplayLeaderboard(account);
}
}
}
Итак, onActivityResult () делает поймать обратный вызов, пока что все хорошо:
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CALLBACK_SIGN_IN_TO_GOOGLE_ACCOUNT)
{
// Result returned from launching the Intent from GoogleSignInClient.getSignInIntent()
Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
try
{
GoogleSignInAccount account = task.getResult(ApiException.class);
// THIS IS WHERE IT FAILS
// **********************
// Signed in successfully.
// ...
}
catch (ApiException e)
{
// The ApiException status code indicates the detailed failure reason.
// Please refer to the GoogleSignInStatusCodes class reference for more information.
System.out.println("Failed to sign in.");
String message = e.getMessage();
System.out.println(message);
e.printStackTrace();
}
}
}
Как указано выше, вот где он терпит неудачу.
12-10 17:24:54.877 12571-12571/*.*.* W/System.err: com.google.android.gms.common.api.ApiException: 12501:
12-10 17:24:54.877 12571-12571/*.*.* W/System.err: at com.google.android.gms.common.internal.ApiExceptionUtil.fromStatus(Unknown Source)
12-10 17:24:54.877 12571-12571/*.*.* W/System.err: at com.google.android.gms.auth.api.signin.GoogleSignIn.getSignedInAccountFromIntent(Unknown Source)
12-10 17:24:54.887 12571-12571/org.fortheloss.sticknodespro W/System.err: at *.*.*.AndroidLauncher.onActivityResult(AndroidLauncher.java:1013)
Рассматривая примеры для входа в систему и списки лидеров,мой код выглядит идентично.
Мне кажется, что я сбился с пути со всей консолью Firebase и / или консолью Google Play Services (кто знает, что это такой беспорядок) OAUTH и SHA-1, что я не делаюЯ не знаю, что мне нужно, что мне не нужно, это повсеместно и все еще не работает.Некоторые вещи предназначены для «веб-приложения» - это не веб-приложение - у меня там все равно есть учетные данные, они помещаются в приложение и т. Д. - не имеет значения, все еще не работает.
Любойприветствуется правильное направление.