Я создаю игру для Android.Каждый пользователь должен пройти аутентификацию.
В настоящее время, когда новый пользователь запускает игру, он запрашивает идентификационный код с моего сервера и сохраняет его в SharedPreferences.В следующий раз, когда пользователь запускает игру, он использует этот сохраненный идентификационный код для аутентификации.Проблема в том, что когда пользователь очищает данные этого приложения, он никак не может вернуть свой идентификатор, поэтому он навсегда потерял свой прогресс.
Есть ли способ, как сгенерировать что-то вроде идентификационного кода, который является уникальным ивсегда одинаково для одного игрока, использующего метод авторизации в играх Firebase Play?
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN)
.requestServerAuthCode("MyCID")
.build();
mAuth = FirebaseAuth.getInstance();
super.onCreate(savedInstanceState);
final FirebaseAuth auth = FirebaseAuth.getInstance();
AuthCredential credential = PlayGamesAuthProvider.getCredential("MyCID");
auth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
currentUser = auth.getCurrentUser();
} else {
Toast.makeText(MainActivity.this, "Authentication failed.",
Toast.LENGTH_SHORT).show();
}
}
});
if (currentUser == null) {
cu = "NO UID";
} else {
cu = currentUser.getUid();
}
Я пробовал этот код (где MyCID: я использовал CID из рисунка ниже), но всплывающее окно в Google Play Games отсутствуетпоказано, что я получаю тост «Сбой аутентификации», и для cu задано «NO UID».
![MyCID](https://www.dropbox.com/s/xxo6zuqo3j9pi74/Screenshot_5.jpg?dl=1)
Может кто-нибудь объяснить, как это работает, пожалуйста?
РЕДАКТИРОВАТЬ
Благодаря @crysxd мое приложение теперь отображает зеленое всплывающее окно Google Play.Но вместо ожидаемого всплывающего окна «Выберите учетную запись», как я вижу в других играх, в которых используется вход в игры Google, я получаю сообщение об ошибке «com.google.android.gms.common.api.ApiException: 4:».
Есть ли функция, которую мне нужно запустить, чтобы показать это диалоговое окно?Я что-то упустил или просто неправильно настроил игру в игровой консоли Google?
Мой текущий код: ссылка