我想知道使用各种Firebase Auth提供程序的最佳做法是什么。 我有一个Flutter项目,该项目使用Firebase Auth Google和邮件提供商来注册用户。
问题在于,如果某些用户验证了其电话号码,他们将拥有更多权限。因此,我也必须实现Phone Auth提供程序,但是现在,当用户验证其电话号码时,它将自动使用新ID登录,因为无法将电话验证与登录过程分开。
起初,我认为删除新用户应该为我提供一个简单的解决方案,但是当您删除该用户时,它也会对其进行签名,因此它无法按我的方式工作。
我认为在创建新用户时切换到“原始”用户应该很容易,但是那时我仍然会有一个具有2个ID的用户,这样看来有点混乱。
那么,有人遇到同样的问题吗,他们的解决方案是什么? 如果没有,您能帮我找到处理这种情况的最佳方法吗?
编辑:如果有人想让用户在注册时选择使用电话提供商进行注册,这不是解决方案。
答案 0 :(得分:1)
如果只有一个用户与多个提供程序一起登录,则可以期望您告诉Firebase身份验证链接帐户,以便它们共享相同的身份。 documentation for web对此进行了详细讨论。我确信API和程序对于flutter都是相似的。
答案 1 :(得分:0)
这是颤动的代码,以防万一有人需要它:
void _linkWithCredential() async {
final AuthCredential credential = PhoneAuthProvider.getCredential(
verificationId: _verificationId,
smsCode: _smsController.text,
);
(await _auth.currentUser()).linkWithCredential(credential);
}