代码之家  ›  专栏  ›  技术社区  ›  i6x86

处理不同的Firebase身份验证提供程序

  •  0
  • i6x86  · 技术社区  · 5 年前

    我有一个flatter项目,它使用Firebase Auth Google和邮件提供商来注册用户。

    问题是,如果一些用户验证了他们的电话号码,他们就拥有更多的权限。因此,我也必须实现电话验证提供者,但现在当用户验证他们的号码时,它会自动用新的ID登录,因为无法将电话验证与登录过程分开。

    一开始我认为删除新用户应该给我一个简单的解决方法,但是当你删除用户时,它也会注销,这样就不能按我需要的方式工作了。

    我认为当我创建一个新的用户时,应该很容易切换到“原始”用户,但是我仍然会有一个用户有两个ID,这样看起来有点混乱。

    那么,有人面临同样的问题吗?他们的解决方案是什么? 如果没有,你能帮我找到处理这种情况的最佳方法吗?

    1 回复  |  直到 5 年前
        1
  •  1
  •   Doug Stevenson    5 年前

    documentation for web 详细讨论了这一点。我确信对于颤振来说api和过程是相似的。

        2
  •  0
  •   i6x86    5 年前

    以下是颤振代码,以防有人需要:

    void _linkWithCredential() async {
        final AuthCredential credential = PhoneAuthProvider.getCredential(
          verificationId: _verificationId,
          smsCode: _smsController.text,
        );
         (await _auth.currentUser()).linkWithCredential(credential);
      }