我希望我的用户使用多个帐户登录(不链接多个提供商)
像gmail一样,它允许您同时使用多个已登录的帐户 您可以同时查看所有帐户的所有收件箱e.g。我是用户,我想使用两个帐户 john@example.com& john21@example.com
我希望两封电子邮件都已登录(在这种情况下有两个身份验证令牌)
我在Firebase文档中搜索过它,我找不到任何内容
这可以在Firebase Auth中使用吗?
答案 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);
我没有真正测试过,您认为它可以工作吗?我不知道如何保存对象,是否有一种安全的方法来实现它而不暴露每个用户的凭据?