应用之间的Firebase身份验证状态共享

时间:2017-11-13 07:34:40

标签: android firebase firebase-authentication

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

2 个答案:

答案 0 :(得分:0)

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

以下是一个用例:

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

Bundle IDS是这样的:

  1. Demo_iOS1:com.ios.demo1
  2. Demo_iOS2:com.ios.demo2
  3. 注意:所有四个应用都在同一个Firebase项目中

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

答案 1 :(得分:0)

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

  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 auth登录到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。 如果您需要有关实现的更多信息,请发表评论,我将分享实现的详细信息。