我正在查看以下文档:https://firebase.google.com/docs/auth/android/account-linking

第2步说不要经过FirebaseAuth.signInWith,因为我在第4步中在mAuth.getCurrentUser()处得到NullPointerException,因为没有登录用户 .

当我从应用程序注销时,我使用FirebaseAuth.getInstance() . signOut();

我的问题是:在用户从首先使用的auth方法注销后,是否可以链接2个auth提供程序(在我的应用程序中使用Google和电子邮件/密码) . 如果我在注销应用程序时没有执行FirebaseAuth.getInstance() . signOut(),则会检测用户并在下次启动时直接进入 . 这意味着它永远不会选择另一个提供商 .

我正在寻找的逻辑:

  • 注册并使用电子邮件/通行证组合登录 .

  • 注销 .

  • 使用Google登录(与步骤1中相同的电子邮件关联的帐户)

  • 而不是在Firebase控制台中使用不同的UID创建新帐户,而不是将其链接到现有帐户 .

反过来说:

  • 使用Google帐户登录(创建新的Firebase控制台帐户)

  • 注销 .

  • 注册电子邮件/密码并登录 .

  • 而不是在Firebase控制台中使用不同的UID创建新帐户,而不是将其链接到现有帐户 .

到目前为止,我一直在使用电子邮件而不是UID,并在创建新的Firebase帐户之前检查数据库中是否存在电子邮件 . 现在我想切换到使用UID更有效地实现安全规则 .