我正在使用最新版本的Ionic (v1.3.1)和Firebase (v3.1.0)。我试图使用以下方法进行firebase用户身份验证:
firebase.auth().signInWithEmailAndPassword(email,密码)
虽然此方法在web浏览器中运行时非常有效,但当离子应用程序在Android上本地运行时,它会抛出一个错误,特别是:
‘已发生网络错误(例如超时、中断连接或无法到达的主机)。
我已经确保应用的config.xml允许访问所有的URL,所以它似乎不是一个Ionic的问题。
从网上看,Firebase可能是阻塞了应用程序的浏览器,因为它不识别应用程序的域(用于身份验证的域似乎是在Firebase仪表板中身份验证部分的'OAuth重定向域‘部分中白色显示的)。
然而,无法确定Ionic应用程序的域是什么(它肯定不是“localhost”或127.0.0.1)。
因此,我的问题是: Firebase signInWithEmailAndPassword(电子邮件、密码)实际上是与Ionic和其他web包装平台一起工作吗?还是目前不受支持?
发布于 2016-07-09 19:51:54
确保您正在设置正确的内容-安全性-策略也。沿袭的东西:
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *;script-src 'self' https://* 'unsafe-inline' 'unsafe-eval'; connect-src 'self' https://* 'unsafe-inline' 'unsafe-eval'; ">
发布于 2016-07-12 12:24:28
非常感谢你的答复。对于那些对这个问题的解决方案感兴趣的人来说,它不属于Firebase。相反,新版本的Cordova和Ionic有时会在应用程序试图发出网络请求时抛出http 404错误。
为了解决这404错误,应用程序需要Cordova WhiteList插件:
http://docs.ionic.io/docs/cordova-whitelist
https://stackoverflow.com/questions/38268455
复制相似问题