Ionic Framework 和 Firebase 3.x 版本:此域未授权您的 Firebase 项目的 OAuth 操作

Posted

技术标签:

【中文标题】Ionic Framework 和 Firebase 3.x 版本:此域未授权您的 Firebase 项目的 OAuth 操作【英文标题】:Ionic Framework and Firebase 3.x version: This domain is not authorized for OAuth operations for your Firebase project 【发布时间】:2016-09-18 16:18:09 【问题描述】:

我正在使用 Ionic Framework 和 Firebase 开发 ios 应用。我已在我的项目中将 Firebase SDK 更新为 3.x 版。我要做的是在真实设备上使用 Facebook 对用户进行身份验证。当我在浏览器上测试它时一切正常。但是,每当我在真正的 iOS 设备上运行时,总是会收到以下错误:

此域无权对您的 Firebase 项目进行 OAuth 操作。从 Firebase 控制台编辑授权域列表。

在 Firebase 上,我已经将“localhost”和“127.0.0.1”添加到我的授权域列表中。所以我不确定现在该怎么做。

为了您的信息,我没有在我的项目中使用 WKWebView。

这里有人可以告诉我如何解决这个问题吗?请指教。

【问题讨论】:

我认为我们应该在 Firebase 的“OAuth 重定向域”部分添加应用程序的域,但我不知道在设备上运行时哪个是应用程序的域。 - document.location.host 和 window.location.host 为空白 您需要更新来自 firebase 文档的 instructions 之后的所有内容! Credits android 或 iOs 平台上的 React-native 中面临同样的问题。 【参考方案1】:

错误"This domain is not authorized for OAuth operations for your Firebase project. Edit the list of authorized domains from the Firebase console." 只会阻止signInWithPopup() signInWithRedirect() linkWithPopup()linkWithRedirect() 操作工作。其他所有功能,包括 signInWithCredential(),都应该可以工作。

我相信您看到此错误是因为 ionic 应用程序没有真正的域,这是我上面提到的 4 个功能的要求。

解决您的问题的方法是忽略该错误(它只是提供信息)而不使用signInWithPopupsignInWithRedirectlinkWithPopuplinkWithRedirect。相反,请使用诸如 ngCordovaOAuth 之类的 OAuth 库,然后使用 auth().signInWithCredential(...)(请参阅 Twitter here 的示例说明)。

【讨论】:

你说得对,这行得通。我更喜欢使用插件来提示本地登录,例如 cordova-plugin-facebook4 或 twitter-connect-plugin。如果有一个解决方法可以在不安装插件的情况下使用 Firebase 的 v3 登录。 很高兴它成功了!当然,这是一个非常有趣的功能请求,我会将其传递给团队。 是的,这行得通。非常感谢 alfongj。我还发送了一封电子邮件向 Firebase 询问此问题,他们也建议使用 Oauth 库,然后使用 signInWithCredential()。供您参考,已提交有关此问题的功能请求。 =) 很高兴听到!您能否将此标记为已接受的答案,以便其他开发人员在搜索时找到它? Firebase 仍未解决此问题。我不想安装科尔多瓦插件只是为了让它工作。尝试使用 JUST firebase 通过社交网络进行身份验证时,将 firebase 与任何混合风格的应用(cordova、ionic、phonegap 等)一起使用都会失败。【参考方案2】:

我有同样的问题,但我通过创建新的 firebase 项目解决了它。

【讨论】:

我试过你的方法,但没有得到任何运气。我正在使用 Ionic v.1.7.14 和 Firebase 3.x。在 iOS 上调用 firebase.auth().signInWithPopup(provider) 时,会出现一个新的弹出窗口,然后立即消失。 =(【参考方案3】:

好的,这是我的临时解决方案:

我在我的 ionic 项目中同时导入 Firebase SDK v.2.x 和 Firebase SDK 3.x。我在 iOS 上使用 2.x 版进行 Facebook 身份验证,然后使用 3.x 版来访问 Firebase 上的所有新功能,例如存储等。

希望这会有所帮助。

【讨论】:

以上是关于Ionic Framework 和 Firebase 3.x 版本:此域未授权您的 Firebase 项目的 OAuth 操作的主要内容,如果未能解决你的问题,请参考以下文章

十分钟使用ionic Framework开发一个跨平台移动应用

sh Ionic Framework的Ubuntu开发人员脚本

Ionic Framework 和 Firebase 3.x 版本:此域未授权您的 Firebase 项目的 OAuth 操作

Ionic Framework - 上传到 Ionic View 应用程序,没有获取最新的 javascript 文件,可能缓存仍然存在?

选择默认选项不适用于 Ionic Framework

Ionic Framework 应用程序适用于“离子服务”,但不适用于 Ionic View 应用程序