2016-02-29 31 views
0

我正在創建一個需要Facebook登錄的應用程序,並且我正在使用Firebase API中的authWithOPopup來執行此操作。我花了幾個小時試圖解決這個問題,並且已經有很多修復程序,但是他們都沒有爲我工作。我正在用Ionic View測試應用程序。Firebase authWithOPopup(「Facebook」)不會重定向,留在白色屏幕上

當我在瀏覽器中提供應用程序時,它可以很好地工作,但它不會在本機環境中運行。它在我的三星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。

+0

Ionic View不支持Facebook-auth所需的應用內瀏覽器。您是否嘗試過在設備或模擬器上安裝應用程序?它應該在那裏工作。 – nicfo

+0

不,我不能模擬IOS,因爲我在使用Linux。你推薦什麼是模擬Android或ios的最佳方式? – theblindprophet

+0

您使用的是什麼版本的InAppBrowser? –

回答

2

這種整合可能是一件棘手的事情,因爲我們(Firebase)沒有編程方式來檢測InAppBrowser,而是試圖嗅探它並盡力嘗試使用它。在卡住白屏的情況下,這意味着(a)整個頁面被重定向,並且InAppBrowser沒有被實際使用,或者(b)Firebase的傳輸被破壞。

以下有關調試的一些注意事項,但注意您應該檢查您的InAppBrowser版本。根據https://github.com/nraboy/ng-cordova-oauth/issues/193,InAppBrowser在v1.2.0到v1.3.0之間的用例有點不對勁。

調試:

  • 你在哪裏調用ref.authWithOAuthPopup(...)網頁,嘗試console.log(cordova)cordova在範圍內,還是未定義?如果未定義,請查看您的構建過程,或者您的腳本包含。
  • 接下來,在同一頁上嘗試window.open('https://www.google.com', '_blank');。該應用程序正在加載InAppBrowser,您可以在其中看到帶有關閉選項的彈出框,或整個頁面被重定向?如果是後者,請深入瞭解爲什麼InAppBrowser不可用,從頁面中存在cordova var開始。
  • 如果您已驗證InAppBrowser能夠正常運行,現在通過在網絡上測試與您選擇的提供商的OAuth身份驗證,驗證您的OAuth應用程序是否已正確配置。