【问题标题】:Firebase auth state sharing between apps应用之间的 Firebase 身份验证状态共享
【发布时间】:2017-11-13 07:34:40
【问题描述】:

我有一个包含多个 Android 应用程序的 firebase 项目,并且我使用电子邮件、谷歌和 Facebook 等 Firebase 身份验证。现在,当用户登录我们的一个应用时,我可以与用户安装的另一个应用共享该登录,该应用也存在于同一个 firebase 项目中。

【问题讨论】:

  • 这个问题你解决了吗?

标签: android firebase firebase-authentication


【解决方案1】:

您可以在 iOS 中轻松设置跨应用身份验证,同时使用 Firebase 身份验证,使用钥匙串共享:

  1. 在每个要使用跨应用身份验证的应用中添加钥匙串共享功能
  2. 在您的代码中定义您要使用钥匙串共享
    do {
      try Auth.auth().useUserAccessGroup("TEAMID.com.example.group1")
    } catch let error as NSError {
      print("Error changing user access group: %@", error)
    }
  1. 登录到 firebase,至少在一个应用程序中使用 firebase 身份验证。
  2. 同一当前用户在所有使用相同访问组的应用中可用:
    var user = Auth.auth().currentUser 

您可以在 Firebase 官方文档中找到更多信息:https://firebase.google.com/docs/auth/ios/single-sign-on?hl=en

目前我没有关于 Android 上的跨应用身份验证的信息,但我有一项任务要在该平台上实现相同的功能。我会在实施后立即分享详细信息。

已编辑:好的,我用 Android 解决了这个难题。 目前,您可以用来在 Android 10+ 上的应用之间共享身份验证状态的唯一方法是 ContentProvider。 如果您需要有关实现的更多信息 - 发表评论,我将分享我的实现细节。

【讨论】:

    【解决方案2】:

    是的,您可以在同一个项目的每个应用程序中使用相同的身份验证。它的 iOS/Android 或两个或多个 Android 应用都没有关系,只要它们在同一个 Firebase 项目中即可。

    这是一个适合您的用例:

    我有 4 个应用程序,两个 Android 应用程序和两个 iOS 应用程序

    Bundle IDS 是这样的:

    1. Demo_iOS1 : com.ios.demo1
    2. Demo_iOS2 : com.ios.demo2

    注意:所有四个应用都在同一个 Firebase 项目中

    现在,如果我在 Demo1 iOS 应用程序中创建用户,那么我可以在所有其他 3 个应用程序中使用该用户凭据登录,其他条件也一样。

    【讨论】:

    • 我知道我可以使用同一个项目,但我在问如果我安装 Demo_iOS1 应用程序并使用 firebase 登录,然后我安装 Demo_iOS2 应用程序,那么我可以使用已经登录的凭据而不要求用户登录第二个应用程序。
    猜你喜欢
    • 2021-02-09
    • 2021-11-19
    • 2023-03-06
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    • 2016-09-17
    • 1970-01-01
    • 2010-12-20
    相关资源
    最近更新 更多