Firebase authWithOPopup("facebook") 不会重定向,留在白屏上

Posted

技术标签:

【中文标题】Firebase authWithOPopup("facebook") 不会重定向,留在白屏上【英文标题】:Firebase authWithOPopup("facebook") won't redirect, left on white screen 【发布时间】:2016-02-29 13:57:42 【问题描述】:

我正在创建一个需要 Facebook 登录的应用,并且我正在使用 Firebase API 中的 authWithOPopup 来执行此操作。我花了几个小时试图解决这个问题,并且已经有很多修复,但没有一个对我有用。我正在使用 Ionic View 测试应用程序。

当我在浏览器中提供应用程序时,它可以完美运行,但不会在本机环境中运行。它适用于我的三星 Galaxy 5,但不适用于我尝试过的任何 iPhoen。输入凭据后,将出现 Facebook 登录,然后屏幕变为白色。这是我的代码:

.controller('FacebookCtrl', function($scope, $state) 

$scope.login = function() 
    // Facebook login
    ref.authWithOAuthPopup("facebook", function(error, authData) 
        if (error) 
            console.log("Login Failed!", error);
         else  // Login successful
            console.log("Authenticated successfully with payload:",
            ...

我已经安装了相应的 InAppBrowser 和 cordova.js 文件:

<!-- ionic/angularjs js -->
<script src="lib/ionic/js/ionic.bundle.js"></script>

<!-- cordova script (this will be a 404 during development) -->
<script src="cordova.js"></script>

我已经尝试了我能找到的每一个分步教程,但它仍然无法正常工作,firebase 版本是 2.4.1,cordova 版本是 6.0.0。

【问题讨论】:

Ionic View 不支持 facebook-auth 需要的应用内浏览器。您是否尝试在设备或模拟器上安装该应用程序?它应该在那里工作。 不,我没有,我无法模拟 ios,因为我使用的是 Linux。您推荐的最佳模拟方式是 android 还是 ios? 您使用的是什么版本的 InAppBrowser? 我正在使用最新版本的一切 【参考方案1】:

这种集成可能是一件棘手的事情,因为我们 (Firebase) 没有编程方式来检测 InAppBrowser,而是尝试嗅探它并尽最大努力尝试使用它。如果您卡在白屏上,这意味着 (a) 整个页面被重定向,并且 InAppBrowser 实际上没有被使用,或者 (b) 与 Firebase 的传输中断。

以下关于调试的一些注意事项,但注意您应该检查您的 InAppBrowser 版本。根据https://github.com/nraboy/ng-cordova-oauth/issues/193 的说法,对于我们在 v1.2.0 到 v1.3.0 之间的用例,InAppBrowser 有点损坏。

调试:

在调用ref.authWithOAuthPopup(...) 的页面上,尝试console.log(cordova)cordova 在范围内还是未定义?如果未定义,请查看您的构建过程,或者您的脚本包含。 接下来,在同一页面上,尝试window.open('https://www.google.com', '_blank');。应用程序是在 InAppBrowser 中加载,您可以在其中看到带有关闭选项的弹出框,还是整个页面都被重定向?如果是后者,请从页面中是否存在 cordova 变量开始,深入了解 InAppBrowser 不可用的原因。 如果您已验证 InAppBrowser 工作正常,现在通过在网络上使用您选择的提供商测试 OAuth 身份验证来验证您的 OAuth 应用程序是否已正确配置。

【讨论】:

以上是关于Firebase authWithOPopup("facebook") 不会重定向,留在白屏上的主要内容,如果未能解决你的问题,请参考以下文章

VueJS + Firebase 使用 Firebase 绑定

无法解决:com.google.firebase:firebase-ml-vision:24.1.3;无法解决:com.google.firebase:firebase-core:20.0.2

没有创建 Firebase 应用“[DEFAULT]” - 在 Flutter 和 Firebase 中调用 Firebase.initializeApp()

如何修复 Firebase 9.0 导入错误? “尝试导入错误:‘firebase/app’不包含默认导出(导入为‘firebase’)。”

Firebase 持久化,清除 Firebase 缓存

Firebase 存储不会下载并添加到 firebase 数据库