Phonegap 的 Firebase 简单登录问题
Posted
技术标签:
【中文标题】Phonegap 的 Firebase 简单登录问题【英文标题】:Firebase Simple Login Issue with Phonegap 【发布时间】:2013-11-12 19:14:45 【问题描述】:我正在尝试在 Phonegap 中通过 Firebase 简单登录使用“密码”身份验证,但收到此错误:
Web Console(857): FirebaseSimpleLogin(): Due to browser security restrictions,
loading applications via `file://*` URLs will prevent popup-based authentication
providers from working properly. When testing locally, you'll need to run a
barebones webserver on your machine rather than loading your test files via
`file://*`. The easiest way to run a barebones server on your local machine is
to `cd` to the root directory of your code and run `python -m SimpleHTTPServer`,
which will allow you to access your content via `http://127.0.0.1:8000/*`. at
file:///android_asset/www/js/firebase-simple-login.js:74
我们如何解决这个问题? Firebase 管理 GUI 中的 Auth 设置又如何呢?我们如何允许基于 Phonegap 的应用访问 Firebase 服务器?
【问题讨论】:
[Firebase 工程师] 此错误消息是对用户在本地加载文件的警告,但实际上应该对 PhoneGap 无害,前提是您需要 InAppBrowser 和cordova.js
或 phonegap.js
在您的应用程序中。我会为 PhoneGap 案例隐藏这条消息。如果您遇到更多问题,请直接联系 support@firebase.com。
感谢您的详细信息。我会验证这是警告还是错误。
是的,你是对的。该消息是警告,而不是错误。即使这是一个警告,Firebase 登录也无法与 Phonegap 一起使用。仅供参考,我已启用 InAppBrowser 并添加了 cordova.js
您能就这个问题联系 support@firebase.com 吗?我们很乐意查看并找到问题的根源。
【参考方案1】:
错误消息非常清楚地指出,当通过 file:// 访问页面时,您不能使用弹出式身份验证。因此,您无需在浏览器中输入本地文件路径,而是需要运行一个 http 服务器,并使用像 http://localhost/
这样的 URL。
这不是 Firebase 的安全问题,而是一个基本的浏览器沙盒功能。
获取服务器非常简单。如前所述,如果您使用的是 python,则可以运行 python -m SimpleHTTPServer
。如果 node.js 更像是你的蜡球,那么还有一个很棒的简单的 http-server 用于 node 的 lib。如果你在 Mac 上,you already have one,否则你可以试试XAMPP。
【讨论】:
你没有明白我的意思。我知道当我们使用网络服务器时这个问题会得到解决。但我没有使用浏览器。我正在使用 Phonegap。以上是关于Phonegap 的 Firebase 简单登录问题的主要内容,如果未能解决你的问题,请参考以下文章
使用 PhoneGap 和 Firebase 云消息传递 (FCM) 的简单推送通知 Android 应用程序
用于 Phonegap/Cordova 应用程序的 Firebase 分析
使用 firebase authWithPassword 时定期注销