0

我已(我與火力地堡驗證工作),當我在我的設備上運行我的應用程序,然後點擊登錄按鈕,我得到錯誤信息登錄頁面與Facebook:離子火力Facebook的身份驗證

此操作在運行此應用程序的環境中不受支持。 「location.protocol」必須是http或https,並且必須啓用Web存儲。

和錯誤代碼是:

auth/operation-not-supported-in-this-environment 

如果我在谷歌瀏覽器上運行這個程序,它的偉大的工作。哪裏有問題?

感謝。

登錄代碼:

var provider = new firebase.auth.FacebookAuthProvider(); 
    firebase.auth().signInWithPopup(provider).then(function(result) { 
     // This gives you a Facebook Access Token. You can use it to access the Facebook API. 
     var token = result.credential.accessToken; 
     // The signed-in user info. 
     var user = result.user; 
     console.log(user); 
     // ... 
    }).catch(function(error) { 
     // Handle Errors here. 

     var errorCode = error.code; 
     var errorMessage = error.message; 
    console.log(errorMessage); 
    console.log(errorCode); 
     var email = error.email; 
     // The firebase.auth.AuthCredential type that was used. 
     var credential = error.credential; 
     // ... 
    }); 
+0

現在Cordova不支持signInWithPopup。作爲解決方法,您可以使用Cordova的Facebook登錄庫,然後使用訪問令牌調用signInWithCredential()。 –

+0

我該怎麼做?你有一個exapmle? @ChanningHuang – Ron

回答

1

正如錢寧說,目前這不是在科爾多瓦支持。 您需要使用Cordova插件登錄Facebook登錄。 成功之後,您將獲得一個OAuth 2訪問令牌或ID令牌。 然後,您可以初始化一個auth憑證,然後使用Web SDK調用signInWithCredential:

firebase.auth().signInWithCredential(firebase.auth.FacebookAuthProvider.credential(fbAccessToken)).then(function(user) { 
 
    // The facebook user is now signed in. 
 
}).catch(function(error) { 
 
    // Some error happened! 
 
});

爲了得到FB訪問令牌,可以使用例如下面的插件,我發現:https://github.com/Wizcorp/phonegap-facebook-plugin

+0

我可以得到acces令牌,但承諾似乎沒有工作。沒有解決也沒有發現任何錯誤。不知道如何調試,因爲這是在模擬器中運行。不管怎麼說,還是要謝謝你。 –

+0

好吧,最後我發現了android sdk中的'monitor'來調試模擬器。這個錯誤非常愚蠢,我沒有在組件中導入Firebase。 Monitor向我展示了一些參考錯誤firebase ...無論如何,你的回答非常有用,並且是發現許多事情的關鍵。非常感謝。 –