Firebase authWithOPopup(“facebook”)不会重定向,留在白色屏幕上

时间:2016-02-29 13:57:42

标签: ios facebook cordova ionic-framework firebase

我正在创建一个需要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。

1 个答案:

答案 0 :(得分:2)

这种集成可能是一件棘手的事情,因为我们(Firebase)没有以编程方式检测InAppBrowser,而是试图嗅出它并尽最大努力尝试使用它。如果你被困在白色屏幕上,这意味着(a)整个页面被重定向,InAppBrowser实际上没有被使用或(b)Firebase的传输被破坏。

下面有关于调试的一些注意事项,但是 note 您应该检查InAppBrowser版本。根据{{​​3}},对于我们在v1.2.0到v1.3.0之间的用例,InAppBrowser有点坏了。

<强> 调试:

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