Я сделал учетную запись, используя firebase для подключения к Google. Пользователь может войти в систему без проблем Теперь я хочу показать лидеров на другой вид деятельности, однако, когда я проверяю, если пользователь вошел в систему, и я стараюсь, чтобы показать лидеров я получаю ошибку:Android FireBase - подключение к игровому серверу Leaderboard
E/UncaughtException: java.lang.IllegalStateException: GoogleApiClient must be connected.
Как я могу подключиться GoogleApiClient
с использованием firebase? Я пробовал использовать mGoogleApiClient.connect(GoogleApiClient.SIGN_IN_MODE_OPTIONAL);
, но это также не работает.
вот мой код:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_achievements);
// Configure Google Sign In
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id))
.requestEmail()
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this, new GoogleApiClient.OnConnectionFailedListener() {
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
// connection failed, should be handled
}
})
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
mAuth = FirebaseAuth.getInstance();
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
// User is signed in
Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getUid());
////// is crashing googleapiclient not connected
startActivityForResult(Games.Leaderboards.getLeaderboardIntent(mGoogleApiClient,
getString(R.string.leaderboard_la_classifica)), REQUEST_LEADERBOARD);
} else {
// User is signed out
}
// ...
}
};
}