为什么我的 firebase Google Auth 弹出窗口会立即关闭?

Sir*_*ert 5 google-authentication firebase firebase-authentication

我正在按照本教程学习firebase。我克隆了 repo。在第 7 步,我做了它所说的(不过,实际上,这里没有什么可做的,因为这些步骤已经在 repo 中完成了)。当我单击 UI 中的 [SIGN-IN WITH GOOGLE] 按钮时,身份验证窗口会弹出并立即关闭。

我正在 VMWare 中的 Ubuntu Guest 中进行开发。在 Firebase 控制台中为该应用授权了以下域:

  • 本地主机
  • blahblah.firebaseapp.com
  • 127.0.0.1
  • <我的访客ip>
  • <我的主机/公共IP>

firebase 网站说在这里提问。我首先进行了彻底搜索,(少数)其他发布的解决方案不起作用。

谁能告诉我为什么会这样?

小智 10

抱歉回复晚了,即使您决定进一步使用其他服务提供商,以下内容可能对遇到相同问题的其他人有所帮助。

由于错误,您可以从此处使用第 5 步捕获该错误,该弹出窗口在打开后可能会立即关闭:https : //firebase.google.com/docs/auth/web/google-signin

这是如何做到这一点的简短片段,只需修改 public/scripts/main.js 中的 signInWithPopup 函数:

firebase.auth().signInWithPopup(provider).then(function(result) {
  // code which runs on success
}).catch(function(error) {
  // Handle Errors here.
  var errorCode = error.code;
  console.log(errorCode);
  alert(errorCode);

  var errorMessage = error.message;
  console.log(errorMessage);
  alert(errorMessage);
});
Run Code Online (Sandbox Code Playgroud)

根据我的经验,errorCode 可能类似于“auth/unauthorized-domain”,并且 errorMessage 可能指向您正在访问的受限域:“此域 (127.0.0.1) 无权运行此操作。将其添加到Firebase 控制台中的 OAuth 重定向域列表 -> 身份验证部分 -> 登录方法选项卡。”

我的解决方案是使用 localhost:8080 而不是 127.0.0.1:8080,但是也可以使用 errorMessage 中的说明将 127.0.0.1 添加到受信任的域中。

您的错误可能有所不同,但希望它有助于调试。谢谢。