当前位置: 首页 > 知识库问答 >
问题:

如何为Firebase匿名用户创建排行榜?

傅奕
2023-03-14

我正在创建一个Android游戏,它有一个排行榜,可以显示用户分数以及他们的姓名,个人资料图片和分数作为列表项。

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

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

当前工作流程

步骤1:连接谷歌客户端Api(见下面的代码)

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

步骤3:显示排行榜

当前实施

当我打开leaderboard activity时,我有以下代码来显示leaderboard(这里用户通过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);
   }
}

上面编写的代码与Google身份验证方法配合良好。当我也使用匿名身份验证方法时,是否可以使用上述代码?

Reference::在Android上使用Google登录进行身份验证

共有1个答案

沈鸿光
2023-03-14

排行榜没有连接到firebase帐户,所以我唯一要确定的是让Google api连接到游戏api范围。排行榜将基于连接的Google帐户显示,不管他使用的是匿名帐户还是链接的firebase帐户。

 类似资料:
  • 我想知道我使用匿名登录方法的应用的用户会发生什么情况。 Firebase文档非常糟糕,没有解释所有的事情,希望开发者自己去发现。我在它的旧版本文档中发现,匿名会话将根据登录中设置的到期时间到期 我找到了这个答案,但它真的是不可接受的。如果你做一个网络应用程序,让每件事都变得困难,匿名用户的数量会增长非常非常快。我甚至无法在我的仪表板中看到我的应用程序用户的数量!!!!!那么,我该怎么办?我应该自己

  • 我有以下场景:使用firebase Auth对用户进行匿名身份验证。然后,他用电子邮件和密码登录到一个现有的账户。然后,他再次从账户中注销。现在,我想重新创建他以前使用过的匿名帐户。 是否可以在设备上本地存储匿名凭据,并在以后再次登录匿名帐户时使用它们?我想保存访问/刷新令牌就足够了,但是firebase auth是否为此提供了API?

  • 在Firebase中,我需要在不创建用户的情况下检查Facebook用户是否存在。最初用户是匿名的,他们尝试使用Facebook登录。如果Facebook帐户尚未链接到我系统中的用户,我希望这失败。它不会链接到当前用户,因为他们是匿名的, 如果我使用Auth。SignandRetrieveDataWithCredential我预期会出现“auth/user not found”错误,但用户只是简单

  • 这是帐户链接代码。匿名用户已登录。

  • 我正在尝试构建一个只有当前用户才能为新用户创建帐户的应用程序。我有两种用户医生和病人。只有医生才能为患者创建账户。到目前为止,Iv创建了一个Firebase数据库,它似乎正在工作,但现在已经停止。患者目前正在接受身份验证,但他们的信息没有被添加到数据库中。我认为问题在于在当前用户登录时尝试创建新用户。是否允许用户创建一个新用户,而无需作为新创建的用户登录? 此代码创建患者帐户并将其添加到Fireb

  • 我是Firebase的新手。最近,我试图将用户保存到Firebase中,但我做不到。当我生成APK并将其运行到真实设备(而不是模拟器)上时,新用户不会将其添加到Firebase中。此外,没有显示任何错误。任务正确执行并转到OTPActivity。这是我的完整代码: 公共无效保存用户(){ 请帮帮我。提前谢谢。