我正在使用AngularFire2身份验证。我们可以使用电子邮件/pass(电子邮件已通过验证)登录,也可以使用Google登录。如果我用电子邮件登录,一切都很好。我登出,登入,来回都没有问题。然后我登录到Google,然后注销,也没有问题。但是,如果我用Google登录,然后注销,我不能用电子邮件登录,除非我刷新页面!尽管我已经完全注销了,但每次我登录Google并注销后,我都会收到"auth/invalid-email“的提示。如果我刷新页面,我可以再次使用电子邮件登录,没有任何问题。有人知道这是什么行为吗?
发布于 2017-07-10 03:15:31
我不知道为什么,但由于刷新页面起作用,我只是在注销后用以下命令刷新:
location.reload();不确定这是否是正确的方法,但它是有效的!如果auth.signOut()能做得更好,我会更高兴。
发布于 2017-07-08 10:54:33
它与这个问题相关:Firebase Overwrites Signin with Google Account
在这种情况下,发生这种情况是出于安全原因。下面是一个常见的场景。我用你的gmail地址注册了一个电子邮件/密码帐户。帐户未经验证(emailVerified为false)。然后,您尝试使用相同的电子邮件登录到您的谷歌帐户,这是一个经过验证的谷歌电子邮件。如果我设置的密码仍然存在,那么我基本上可以登录到您的帐户。为了防止这种情况,Firebase Auth将取消所有未经验证的提供程序的链接。
如果您在Google登录之前通过发送电子邮件验证并完成验证流程来验证帐户,则只能保留旧密码提供商。
https://stackoverflow.com/questions/44980809
复制相似问题