[英]Handle different Firebase Auth Providers
我想知道使用各种 Firebase Auth 提供程序的最佳实践应该是什么。 我有一个 Flutter 项目,它使用 Firebase Auth Google 和邮件提供商来注册用户。
问题是,如果某些用户验证了他们的电话号码,他们就会拥有更多权限。 因此,我也必须实现电话验证提供程序,但现在当用户验证他们的号码时,它会自动使用新 ID 登录,因为无法将电话验证与登录过程分开。
起初我认为删除新用户应该给我一个简单的解决方案,但是当你删除用户时,它也会将其注销,所以它不能按我需要的方式工作。
我认为当我创建新用户时切换到“原始”用户应该很容易,但是我仍然会有一个具有 2 个 ID 的用户,这样看起来有点混乱。
那么,是否有人面临同样的问题,他们的解决方案是什么? 如果没有,你会帮我找到处理这种情况的最佳方法吗?
编辑:以防万一有人有想法让用户在注册时选择使用电话提供商进行注册,这不是解决方案。
如果您有一个用户通过多个提供商登录,则您应该告诉 Firebase 身份验证来链接帐户,以便它们都共享相同的身份。 web 的文档详细讨论了这一点。 我确信 flutter 的 API 和程序是相似的。
这是 flutter 代码,以防万一有人需要它:
void _linkWithCredential() async {
final AuthCredential credential = PhoneAuthProvider.getCredential(
verificationId: _verificationId,
smsCode: _smsController.text,
);
(await _auth.currentUser()).linkWithCredential(credential);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.