Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firebase v3.1 Web SDK-Github oAuth不工作_Javascript_Firebase_Firebase Authentication - Fatal编程技术网

Javascript Firebase v3.1 Web SDK-Github oAuth不工作

Javascript Firebase v3.1 Web SDK-Github oAuth不工作,javascript,firebase,firebase-authentication,Javascript,Firebase,Firebase Authentication,我不会发布一堆代码,除非我不得不这么做。它大部分是直接从Firebase.google.com粘贴的。我得到了每一个认证方法工作良好,但Github oAuth是各种各样的搞砸了。所以过了一会儿,我决定从Firebase v3.0升级到3.1。没办法 重定向页面确实会弹出,但我无法使用我的常规Github凭据-用于创建开发人员应用程序的Github帐户(即使我在其他web选项卡中注销Github)。myauthAction()catch说: 已存在具有相同电子邮件地址但不同的帐户 登录凭据。使用

我不会发布一堆代码,除非我不得不这么做。它大部分是直接从Firebase.google.com粘贴的。我得到了每一个认证方法工作良好,但Github oAuth是各种各样的搞砸了。所以过了一会儿,我决定从Firebase v3.0升级到3.1。没办法

重定向页面确实会弹出,但我无法使用我的常规Github凭据-用于创建开发人员应用程序的Github帐户(即使我在其他web选项卡中注销Github)。my
authAction()
catch说:

已存在具有相同电子邮件地址但不同的帐户 登录凭据。使用与此关联的提供程序登录 电子邮件地址

因此,我创建了第二个虚拟Github帐户,现在可以使用该帐户登录。但是登录后,
user.email
user.displayName
返回
null

另一件奇怪的事:当我从每个应用程序中注销时,我通过Github oAuth登录到我的Firebase应用程序,然后打开一个新标签并导航到Github,我已经登录了!想必,我的令牌是在网站之间共享的?Google、Facebook、Twitter、Anon和Email/Pwd都可以正常工作

有人也有这个Github oAuth问题,还是只有我?…

当您收到错误时: 已存在具有相同电子邮件地址但具有不同登录凭据的帐户。请使用与此电子邮件地址关联的提供程序登录。 这意味着您已使用同一电子邮件与其他提供商登录。您可以登录到同一提供商,然后将github帐户链接到当前用户。您可以调用
firebase.auth(().currentUser.link(githubCred)
firebase.auth(().currentUser.linkWithPopup/Redirect(githubProvider)

至于Github不提供您的电子邮件和姓名,您可以将Github帐户设置为不披露您的电子邮件和信息。通常,如果您使用的是
signInWithPopup
/
signInWithRedirect
,则必须要求提供
user:email
oauth范围,但该范围目前不适用于Firebase。团队正在工作国王陷入困境

关于你的第三个问题,我不确定我是否理解正确。当你使用Github或任何其他提供商登录Firebase时,你需要先登录到该提供商,然后才能同意该应用的权限。如果你导航到该提供商的网站,则登录是正常的。如果你尝试使用Github登录Firebase不同的应用程序,您仍将登录到github,但会要求您同意该应用程序的新权限。

当您收到错误时: 已存在具有相同电子邮件地址但具有不同登录凭据的帐户。请使用与此电子邮件地址关联的提供程序登录。 这意味着您已使用同一电子邮件与其他提供商登录。您可以登录到同一提供商,然后将github帐户链接到当前用户。您可以调用
firebase.auth(().currentUser.link(githubCred)
firebase.auth(().currentUser.linkWithPopup/Redirect(githubProvider)

至于Github不提供您的电子邮件和姓名,您可以将Github帐户设置为不披露您的电子邮件和信息。通常,如果您使用的是
signInWithPopup
/
signInWithRedirect
,则必须要求提供
user:email
oauth范围,但该范围目前不适用于Firebase。团队正在工作国王陷入困境


关于你的第三个问题,我不确定我是否理解正确。当你使用Github或任何其他提供商登录Firebase时,你需要先登录到该提供商,然后才能同意该应用的权限。如果你导航到该提供商的网站,则登录是正常的。如果你尝试使用Github登录Firebase不同的应用程序,您仍将登录到github,但会被要求同意该应用程序的新权限。

谢谢您的回答。我知道当我的问题发生时,我的应用程序已从所有提供商注销(通过.onAuthStateChanged方法).user.email在Facebook之外也能工作,在这种情况下,你必须要求他们提升oAuth访问权限。我不知道-我回到auth后会返回。我现在已经开始开发我的应用程序的其他部分。谢谢你的回答。我知道当我的问题发生时,我的应用程序会从所有提供商那里注销(通过.onAuthStateChanged方法).user.email除了Facebook之外都可以使用,在这种情况下,你必须要求他们提供提升的oAuth访问权限。我不知道-我回到auth后会返回。我现在已经开始开发我的应用程序的其他部分。