如何将 Google Play 游戏登录与 Firebase 身份验证结合使用

Posted

技术标签:

【中文标题】如何将 Google Play 游戏登录与 Firebase 身份验证结合使用【英文标题】:How to combine Google Play Games sign in with Firebase Auth 【发布时间】:2017-02-10 11:14:54 【问题描述】:

我们目前正在我们的一款游戏中使用 Google Play Games API。我们还想使用 Firebase 实时数据库,但这需要使用 Firebase 对用户进行身份验证。

最简单的解决方案是使用 Firebase 身份验证(通过 Google 登录),但这与用户已经登录的 Google Play 游戏帐户无关。

从 Play Games API 中,您无法获取有关用户使用哪个 Google 帐户的任何信息。您也不能使用同一个 Google API 客户端同时连接 Play Games 和 Google。

我们还研究了 Firebase 身份验证中的自定义令牌功能,但我们没有使用服务器来验证用户。设备上的 Google Play 游戏服务不处理令牌,在客户端包含服务器 sdk 会感觉很奇怪。

一个人可以使用两个不同的 API 客户端,但这实质上意味着用户会经历两个不同的登录流程。此外,当用户在其设备上拥有多个帐户时,不能保证他会为 Play 游戏和 Firebase 身份验证选择相同的帐户。

所以我的问题是我们如何结合 Firebase 身份验证和 Google Play 游戏来拥有一个一致的用户?

【问题讨论】:

@mortiz - 你找到解决方案了吗?我还计划为我的应用实现类似的功能。 @vijay053 尚无解决方案。恕我直言,目前不可能。 @Moritz 你最后得到了什么?我目前也面临同样的困境。 @vijay053 仍然没有解决方案。 ***.com/questions/36247959/… 【参考方案1】:

我遵循这种方法: Google Play Games, Firebase and the new Google Sign-in

我从 GPGS 登录到 onConnected 中的 Auth.GOOGLE_SIGN_IN_API。

我也担心多个帐户,但如果我更改帐户,用户播放器 ID 也会更改。 因此,我认为 Google Play Games Services Player ID 的 Google-Sign-In 和生成的 Firebase UID(通过 Google 进行身份验证)处于保存 1-1-1 关系。

唯一的缺点:用户现在需要对他的帐户信息授予一次权限。

【讨论】:

这是一个答案,还是您发布了类似的问题? 我遇到了同样的问题,对我来说解决方案效果很好,因此我想这是一个答案,不是吗? 我认为如果你必须问它是否是一个答案,那么它可能不是一个好兆头。您的回答确实有意见,这也表明这可能更适合作为评论 好的,我回答了提问者的主要问题。似乎没有混合帐户。 我使用诸如“似乎”之类的短语或将其标记为“我的意见”,因为我没有运行 10000 次测试和所有可能的场景,但我的测试可能会帮助提问者克服这个障碍。我没有使用评论,因为我是新用户,所以不允许发表评论。我不为名誉或其他什么而钓鱼。我看到试图互相帮助的问题,那么你的问题是什么?是满足堆栈溢出后规则的各个方面还是我们可以互相帮助更重要?

以上是关于如何将 Google Play 游戏登录与 Firebase 身份验证结合使用的主要内容,如果未能解决你的问题,请参考以下文章

实施 Google Play 游戏服务 - 如何让用户登录

检测用户退出 Google Play 游戏登录

如何避免 Google Play 游戏服务登录对话框自动提示?

Google Play 游戏服务 - 无法登录游戏中心

如何实现 google play 成就并登录我的游戏?

Google Play 服务 - BaseGame Utils - 游戏助手 - 与美国以外的人有关的登录问题