2017-08-20 8 views
0

Je crée un jeu Android où il a un leaderboard pour montrer les scores de l'utilisateur avec leur nom , photo de profil et score de comme élément de la liste.Comment créer un classement pour un utilisateur anonyme de Firebase?

Plus tard, j'ai décidé de supprimer Google login mis en œuvre le jeu afin d'augmenter le flux de l'utilisateur dans la page de jeu. Mais en même temps, je voulais que les utilisateurs soient authentifiés (pour des raisons de sécurité) sans leur demander de cliquer sur un bouton de connexion (où il y a tellement de pertes). J'ai donc trouvé option d'authentification anonyme dans la section Authentification Firebase.

Ma question est quand je uniquement pour le relais sur accès anonyme à travers le jeu ai-je besoin d'avoir à convertir le Utilisateur anonyme à un utilisateur de Google programme pour les afficher dans la leaderboard liste ou poignées Google ceci automatiquement/en interne?

actuel de travail flux

Étape 1: Connectez Google client Api (voir code écrit ci-dessous)

Étape 2: authentifiez avec Firebase (Google Connexion méthode)

Étape 3: Afficher Leaderboard

mise en œuvre actuelle

Quand j'ouvre l'activité leaderboard où j'ai le code ci-dessous pour afficher l'leadeboard (ici l'utilisateur est authentifié par la méthode Google SignIn),

GoogleSignInOptions gso = new 
GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
      .requestIdToken(getString(R.string.default_web_client_id)) 
      .build(); 

    // [END config_signin] 
mGoogleApiClient = new GoogleApiClient.Builder(this) 
      .addOnConnectionFailedListener(this) 
      .addConnectionCallbacks(this) 
      .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
      .addApi(Games.API).addScope(Games.SCOPE_GAMES) 
      .build(); 
... 
... 
... 

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    GoogleSignInResult result = 
    Auth.GoogleSignInApi.getSignInResultFromIntent(data); 

    if (result.isSuccess()) { 
     // Sign In was successful, authenticate with Firebase 
     GoogleSignInAccount account = result.getSignInAccount(); 
     firebaseAuthWithGoogle(account); 
    } 
} 
... 
... 
... 

//On Button Click....... 
public void submitScore(long score) { 

    if (isGoogleAPIConnected()) { 
     Games.Leaderboards.submitScore(mGoogleApiClient, getString(R.string.my_leaderboard), score); 
    } 
} 

Le code écrit ci-dessus fonctionne bien avec la méthode d'authentification Google. Puis-je utiliser le même code que ci-dessus quand j'utilise méthode d'authentification anonyme également?

Référence :: Authenticate Using Google Sign-In on Android

+0

Nous n'avons aucun moyen de répondre à cette question sans voir au moins un morceau de code minimum qui montre comment fonctionne le leaderboard. –

+0

@FrankvanPuffelen J'ai modifié la question avec le code de l'implémentation actuelle que j'ai fait avec la méthode Google Sign In. Je vous remercie. –

Répondre

0

Le leaderboard n'a aucun lien compte firebase, chose si seulement je dois vous assurer est d'avoir Google api connecté avec la portée API GAME. Le classement s'affichera en fonction du compte Google connecté, qu'il utilise ou non un compte firebase anonyme.