Firebase多个帐户同时签名

时间:2018-02-27 21:08:25

标签: firebase firebase-authentication

我希望我的用户使用多个帐户登录(不链接多个提供商)

像gmail一样,它允许您同时使用多个已登录的帐户 您可以同时查看所有帐户的所有收件箱

e.g。我是用户,我想使用两个帐户 john@example.com& john21@example.com

我希望两封电子邮件都已登录(在这种情况下有两个身份验证令牌)

我在Firebase文档中搜索过它,我找不到任何内容

这可以在Firebase Auth中使用吗?

3 个答案:

答案 0 :(得分:2)

Firebase身份验证不支持同一项目中的多个同时登录。

如果您使用其他项目的设置手动初始化Firebase SDK,则可能在多个项目之间进行多次登录。

答案 1 :(得分:2)

从一个项目中,我不认为你可以让两个用户登录。

您可以创建另一个Firebase项目并在那里添加您的应用程序(您可以在任何一个上添加sha-1)。然后,您可以在一个应用中查找他们使用两个Firebase项目的方法。

如果有两个要登录的项目,您将能够以这种方式登录两个用户。您必须自己管理两个数据库中的用户,即同一个用户必须拥有在两个项目中都具有相同凭据的帐户。

这很复杂但可以做到。我在我的应用程序中同时使用两个单独项目的匿名登录,两个用户都是相同的......只是他们的项目不同。

答案 2 :(得分:0)

我在思考此问题时,通读了文档,发现可以通过凭据重新认证用户。所以也许您可以这样:

新用户登录时,将其信息作为AuthCredential对象,如下所示:

AuthCredential credential = EmailAuthProvider.getCredential("user@example.com", "password1234");
//there is also GoogleAuthProvider, FacebookAuthProvider...

然后使用signInWithCredential(AuthCredential)在您那里实际签署他:

FirebaseUser user = FirebaseAuth.getInstance().signInWithCredential(credential);

现在,您需要将credential对象和user对象保存在安全的地方。 如果要添加新用户,请执行相同的操作并保存新对象。 之后,无论何时在您的应用程序中,您想在用户之间切换时,都会获取该用户的对象并调用reauthenticate(AuthCredential)方法:

myFirstUserObject.reauthenticate(myFirstUserCredential);

我没有真正测试过,您认为它可以工作吗?我不知道如何保存对象,是否有一种安全的方法来实现它而不暴露每个用户的凭据?