0
我面临问题得到电子邮件和喜欢的用户在facebook登录后使用firebase进入我的离子应用程序。 获取Facebook显示名称和用户中的其他信息后,也没有被重定向到仪表板页面,而是登录页面得到刷新。虽然我读了不同的帖子在stackoverflow和其他sorces,但我卡住了。请帮我解决这两个问题。 ** 1)**如何得到电子邮件和用户 ** 2)**喜欢如何重定向用户到仪表板很快就被Facebook核实后.. 下面是代码Facebook登录使用在离子应用的firebase
****Controller:****
$scope.loginFaceBook = function() {
///alert('fb Login firebase...');
var existingAuthData = Auth.$getAuth();
console.log("existingAuthData : ",existingAuthData);
//console.log("existingAuthData Email : ",existingAuthData.thirdPartyUserData.email);
Auth.$authWithOAuthRedirect("facebook").then(function(authData) {
alert('done 1');
// User successfully logged in
console.log(authData);
$location.path('app/Dash');
}, {
remember: "sessionOnly",
scope: "email,user_likes"
}).catch(function(error) {
if (error.code === "TRANSPORT_UNAVAILABLE") {
Auth.$authWithOAuthPopup("facebook").then(function(authData) {
// User successfully logged in. We can log to the console
// since we’re using a popup here
alert('done 2');
console.log(authData);
$location.path('app/Dash');
}, {
remember: "sessionOnly",
scope: "email,user_likes"
});
} else {
// Another error occurred
console.log(error);
alert('err');
}
});
Auth.$onAuth(function(authData) {
if (authData === null) {
console.log("Not logged in yet");
} else {
console.log("Logged in as", authData.uid);
console.log("Details",authData);
console.log("Name:",authData.facebook.displayName);
alert("Name:",authData.facebook.displayName);
console.log("gender:",authData.facebook.cachedUserProfile.gender);
console.log(" Email : ",authData.facebook.email);
$location.path('app/Dash');
}
$scope.authData = authData; // This will display the user's name in our view
});
};
**App.js**
// Ionic Starter App
// 'starter.controllers' is found in controllers.js
angular.module('starter', ['ionic', 'starter.controllers', 'ngCordovaOauth','firebase','ngFileUpload'])
.run(function($ionicPlatform) {
$ionicPlatform.ready(function() {
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if (window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
cordova.plugins.Keyboard.disableScroll(true);
}
if (window.StatusBar) {
// org.apache.cordova.statusbar required
StatusBar.styleDefault();
}
});
})
.factory("Auth", function($firebaseAuth) {
var usersRef = new Firebase("https//*********.firebase***.****/****");
return $firebaseAuth(usersRef);
})
我添加了一个工厂代码,.factory( “验证” 功能($ firebaseAuth){VAR = usersRef新火力地堡(“HTTPS//*********.firebase***.****/****“); return $ firebaseAuth(usersRef); })我认为常量在某种程度上是相同的方法,但仍然authData不contain有关用户电子邮件的信息... –
@AftabKhan如果您成功使用Facebook与Firebase进行身份验证,所以authData必须包含属性facebook.id,facebook。 displayName和facebook.email等... 请确保您已成功登录或使用Facebook进行身份验证? 请认证控制台authData,它将帮助您找到所需的属性.. –
所有其他信息,如facebook.displayName可用,除了facebook.email –