我对angularfire / ionic / cordova应用程序有一点问题,特别是facebook auth,我已经推送了我的服务代码 。 (我在我的Auth控制器中调用我的服务函数Auth.login但是这部分代码没有运行) 这个代码运行完美 - 离子 - 保存。 但无法在模拟器或我的设备(iphone)上访问faceboook登录。 当我点击“用FB登录”时我什么都没有。 我不明白我怎么能解决这个问题。 你能救我吗?
app.factory("Auth", function($ionicModal, Findcity, $firebaseAuth,$localStorage, FirebaseUser, geoLocation ){
var provider = new firebase.auth.FacebookAuthProvider();
provider.addScope('user_birthday');
provider.addScope('user_location');
provider.addScope('email');
provider.addScope('user_photos');
provider.addScope('public_profile');
provider.addScope('user_about_me');
var Auth = {
login: function() {
return $firebaseAuth().$signInWithPopup(provider)
.then(function(result) {
$localStorage.fbAccessToken = result.credential.accessToken;
var facebookUser = firebaseAuth$().$getAuth().providerData[0];
return FirebaseUser.get(facebookUser.uid)
.then(function(user){
console.log(facebookUser);
if(user.$value == null) {
console.log(user);
FirebaseUser.save(facebookUser);
}else {
var lat = geoLocation.getGeolocation().lat;
var lng = geoLocation.getGeolocation().lng;
Findcity.city(lat, lng).then(function(city){
var city_user = city;
return firebase.database().ref('/users/' + facebookUser.uid).child('location').update({lat: lat, long: lng, city: city_user})
})
}
})
});
},
return Auth;
});
答案 0 :(得分:0)
Cordova环境目前不支持Firebase 3.x signInWithPopup / Redirect。在支持此功能(正在进行中)之前,您可以使用其他插件获取Facebook,Google的OAuth响应,然后使用signInWithCredential。您可以使用类似https://www.npmjs.com/package/cordova-plugin-facebook的内容来获取Facebook访问令牌,然后通过auth.signInWithCredential(firebase.auth.FacebookAuthProvider.credential(fbAccessToken))登录;