【问题标题】:How To Create Leaderboard For An Firebase Anonymous User?如何为 Firebase 匿名用户创建排行榜?
【发布时间】:2017-08-20 07:00:49
【问题描述】:

我正在创建一个 Android 游戏,其中有一个 排行榜 以列表形式显示用户的分数以及他们的姓名、个人资料图片分数项目。

后来我决定删除 Google 登录 实现的游戏,以增加进入游戏页面的用户流量。但与此同时,我想让用户通过身份验证(出于安全考虑),而不要求他们点击登录按钮(发生了如此多的用户流失)。所以我在 Firebase 身份验证部分找到了 匿名身份验证 选项。

我的问题是,当我在整个游戏中仅使用 匿名登录 进行中继时,我是否需要将 匿名用户 转换为 Google 用户 以编程方式将它们显示在 排行榜 列表中,还是 Google 会自动/内部处理?

当前工作流程

第 1 步:连接 Google Client Api(见下文编写的代码)

第 2 步:使用 Firebase 进行身份验证(Google 登录方法)

第 3 步:显示排行榜

当前实施

当我打开排行榜活动时,我有以下代码来显示排行榜(此处用户通过 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);
   }
}

上面编写的代码与谷歌身份验证方法配合得很好。 当我使用 匿名认证 方法时,我可以使用相同的上述代码吗?

参考::Authenticate Using Google Sign-In on Android

【问题讨论】:

  • 我们无法回答这个问题,除非至少看到一小段代码显示排行榜的工作原理。
  • @FrankvanPuffelen 我已经用我用谷歌登录方法完成的当前实现的代码修改了这个问题。谢谢。

标签: android firebase-authentication leaderboard


【解决方案1】:

排行榜与 firebase 帐户没有关联,所以我唯一需要确保的是让 Google api 与 GAME API 范围连接。排行榜将根据关联的 Google 帐户显示,无论他使用的是匿名帐户还是关联的 Firebase 帐户。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-09
    • 1970-01-01
    • 2018-10-05
    • 2011-10-29
    • 1970-01-01
    • 2020-12-25
    • 1970-01-01
    相关资源
    最近更新 更多