【发布时间】:2020-12-24 23:36:09
【问题描述】:
我们正在使用 Flutter 开发应用程序并探索 Firebase 进行身份验证,我们计划向最终用户提供以下身份验证机制。
- 通过 OTP 登录
- 社交登录 (Facebook/Google)
但是有一个问题,在下面的场景中。
-
用户通过 OTP 登录(创建一个新帐户),假设 U1(用户 ID)和 M1(移动)
U1 ----> M1
-
现在另一天,同一用户尝试通过 FaceBook 登录(我们不会通过社交登录获得移动设备),只有电子邮件将在那里,现在将为同一用户创建一个新帐户。
U2 -----> E1
如何防止在第 2 步 (U2) 中创建帐户,作为其同一用户?
试图探索,在 OTP 验证后通过电话号码更新用户个人资料,以防社交登录,但看起来无法添加电话号码,以防该号码的帐户已经存在。
如果已经存在具有给定电话号码的帐户,则会引发 FirebaseAuthUserCollisionException
有人可以帮忙吗?有人在使用 Firebase 身份验证时遇到过类似问题吗?
【问题讨论】:
-
根据您所解释的流程,将始终创建两个帐户,因为没有共同因素可以确定编号。和电子邮件是同一用户。没有办法默认创建两个帐户。如果使用社交登录的用户登录添加了关联手机号码的功能。与帐户,然后根据帐户链接文档链接这两个帐户。当用户使用移动 otp 登录时,可以选择将他们的社交帐户与之关联..
标签: firebase flutter firebase-authentication