【问题标题】:How are handle multiple authentication provider (firebase)如何处理多个身份验证提供程序(firebase)
【发布时间】:2021-06-02 04:11:48
【问题描述】:

我正在开发我的第一个手机游戏并在其中实现 Firebase 身份验证(使用 Firestore)。

我很难理解如何管理多个身份验证提供程序(以架构方式)

假设用户同时在他的 iPhone 和 iPad 上玩我的游戏。当然,他想在两个设备上检索他的游戏进度。在我的游戏中,您可以通过以下方式进行身份验证:

  • 匿名:默认。每次安装都会创建一个新会话 游戏实例。
  • 与苹果游戏中心
  • 使用 Facebook

我如何处理将通过所有这些提供商进行身份验证的用户。 如果用户首先在两台设备上匿名身份验证,它将创建两个不同的用户。 现在,如果他在 iPhone 上使用 GameCenter 身份验证并想在他的 iPad 上检索他的帐户,我该如何处理。我是否必须将匿名 iPhone 帐户与 GameCenter 关联(例如使用 LinkWithCredential),然后当他在 iPad 上与 GameCenter 连接时,将检索 iPhone 的数据?还是我必须创建另一个不同的用户?如果在此之上添加一个 Facebook 连接(例如,由于 Facebook 身份验证,用户想要在 Android 设备上检索他的数据)会怎样。

我对此有点困惑,而且火力基地并没有真正帮助我(也许我误解了它)。

【问题讨论】:

    标签: android ios firebase firebase-authentication


    【解决方案1】:

    如果用户首先在两台设备上进行匿名身份验证,则会创建两个不同的用户。

    每台设备上会有两个不同的匿名帐户。

    现在,如果他在 iPhone 上使用 GameCenter 身份验证并想在他的 iPad 上检索他的帐户,我该如何处理?我是否必须将匿名 iPhone 帐户与 GameCenter 关联(例如使用 LinkWithCredential)?

    是的,你可以这样做。但是这是什么意思?这意味着您将 iPhone 上的匿名帐户转换为真正的“GameCenter”帐户,这意味着它将能够在以后的会话中继续使用相同的数据。

    然后当他将他的 iPad 与 GameCenter 连接时,将检索 iPhone 的数据?

    可以,但前提是 iPad 上使用的 GameCenter 帐户与 iPhone 上使用的相同。但请记住,如果您尝试将 iPad 上的匿名帐户转换为使用相同凭据的 GameCenter 帐户,您会收到一条错误消息,指出此类帐户已存在。

    或者我必须创建另一个不同的用户吗?

    无需创建其他用户,您可以在每台设备上使用相同的凭据。

    如果在此基础上添加一个 Facebook 连接会怎样(例如,由于 Facebook 身份验证,用户想要在 Android 设备上检索他的数据)。

    GameCenter 和 Facebook 是两个不同的提供商。同样,如果您尝试使用具有相同凭据的其他提供商,您将收到相同的错误,因为该帐户已经存在。

    【讨论】:

    • 感谢您的回复。如果我理解,当用户想连接 GameCenter 或 Facebook 时,我必须检查是否已经有该提供者的帐户,如果有,使用此帐户登录用户,如果没有转换实际的匿名帐户(匿名帐户首次启动时默认创建)
    • 是的,应该先检查,否则会出现异常。
    猜你喜欢
    • 1970-01-01
    • 2016-12-19
    • 2020-08-21
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2018-03-09
    • 1970-01-01
    • 2018-10-31
    相关资源
    最近更新 更多