Firebase项目导致登录时出现“身份验证/网络请求失败”错误

时间:2016-08-09 21:41:38

标签: 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" />

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

<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"]>

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

8 个答案:

答案 0 :(得分:15)

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

答案 1 :(得分:4)

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

Chrome Canary和Firefox没有任何CORS扩展也很好。我不相信提交类型完全相关。

答案 2 :(得分:1)

[CORS原始政策] 1 Chrome不允许您访问没有(http,https)的任何其他网站。 托管网站后,该问题将得到解决。出于临时测试的目的,您可以使用Mozilla Firefox进行访问。 祝你有美好的一天!

答案 3 :(得分:1)

我的问题是我缓存了 serviceworker.js 文件中的所有内容。所以我添加了这些行:

if (
    url.origin === "https://securetoken.googleapis.com" ||
    url.origin === "https://apis.google.com" ||
    url.origin === "https://www.googleapis.com"
) {
    return;
}

答案 4 :(得分:0)

禁用CORS Chrome插件为我工作

答案 5 :(得分:0)

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

  1. 请勿使用表单标签!我将表格标签更改为div标签,然后就可以了!!!
  2. 不要使用input type="submit"作为某人的答案。
  3. 到目前为止,我不确定为什么。但那是我改变的两个地方,然后firebase注册网络问题终于修复了。

答案 6 :(得分:0)

所以这发生在我身上,结果发现Privacy Badger突然将我的应用的firebase域随机添加到了其阻止列表中,几个月后Badger先生对此表示满意。

允许firebase域设置cookie(将滑块一直向右移动)解决了该问题。

答案 7 :(得分:0)

如果您使用的是“ HTTPS Everywhere”扩展名,请转到“ HTTPS Everywhere”设置,然后单击“为此站点禁用HTTPS Everywhere”按钮。它帮助了我。

相关问题