繁体   English   中英

处理不同的 Firebase Auth Providers

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM