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.jsphonegap.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 应用程序

Ionic + Phonegap - 添加授权的离线数据库

用于 Phonegap/Cordova 应用程序的 Firebase 分析

使用 firebase authWithPassword 时定期注销

Facebook 应用程序:Firebase 简单登录 URL 错误

Firebase iOS Facebook 简单登录错误