Firebase项目登录时出现"Auth/network-request-failed"错误

Lio*_*eld 7 javascript android cordova firebase

我使用Firebase的Cordova项目遇到了一个奇怪的问题.它在浏览器中完美运行,但是当我在模拟器或手机(Android)上运行我的应用程序时,(至少)每次加载的第一次登录尝试总是会导致"Auth/network-request-failed"错误.这是我的相关Firebase代码:

<!-- Import Firebase JS -->
<script src="https://www.gstatic.com/firebasejs/3.2.1/firebase.js"></script>

<!-- Import Firebase Authentication-->
<script src="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.js"></script>
<link type="text/css" rel="stylesheet" href="https://www.gstatic.com/firebasejs/ui/live/0.4/firebase-ui-auth.css" />
Run Code Online (Sandbox Code Playgroud)

这是我的安全元标记(我听说可能会导致类似的问题):

<meta "content_security_policy": "script-src 'self' https://apis.google.com https://www.googleapis.com https://securetoken.googleapis.com; object-src 'self'", "permissions": ["https://*/*","activeTab"]>
Run Code Online (Sandbox Code Playgroud)

编辑:我没有更改任何代码,但现在我偶尔会在浏览器(Chrome)中遇到此错误,如果不经常.我找不到一个模式,虽然问题似乎在用户注册后的会话中消失了.非常感谢任何帮助,非常感谢你.

Lio*_*eld 17

我在Firebase支持的帮助下得出了这个答案.事实证明,我调用登录功能的按钮是"提交"类型,这导致我的页面每次按下时都会刷新.这会中断身份验证过程,从而导致"网络请求失败"错误.要解决此问题,请在按钮中删除type ="submit".

  • 我的按钮不是提交类型,但我的按钮的形式也不起作用。删除表单元素后它就起作用了。非常感谢,如果不是这个答案,我两天后仍然会这样做 (4认同)
  • 我遇到了同样的问题,这个答案让我走上了修复之路。结果是我的表单的 `submitHandler` 冒泡了,一个简单的 `e.preventDefault()` 解决了这个问题。 (4认同)

小智 12

最后,我解决了这个问题!

  1. 不要使用表单标签!我将 form 标签更改为 div 标签,然后就可以了!
  2. 不要使用input type="submit", 作为上面某人的答案。

到目前为止,我还不太清楚为什么。但这就是我改变的两个地方,然后firebase注册网络问题终于解决了。

  • 你好。感谢分享,但这不是与 Lior 给出的答案完全相同吗? (2认同)

Jay*_*way 6

我花了很多时间对此感到困惑,只有当我禁用 CORS Chrome 扩展时,它才开始在 Chrome 上工作。

没有任何 CORS 扩展的 Chrome Canary 和 Firefox 也很好。我认为提交类型根本不相关。


Gle*_*ift 5

这是我第二次遇到这个问题,并花费了一些不合理的时间试图找到解决方案。所以我把这个贴给未来的自己(也希望是其他人):

确保您不使用 firebase 模拟器或您的模拟器已启用。