Tenho a seguinte duvida de como devo proceder pois inicialmente havia feito um login com ionic
via navegador porém para dispositivos moveis o mesmo não funciona. Gostaria de uma dicas de como devo proceder.
Observação: utilizo o Firebase para salvar os dados dos usuários.
Controller
'use strict';
app.controller('AuthCtrl', function(Auth, $state) {
var auth = this;
auth.login = function() {
console.log('Login clicado');
return Auth.login().then(function(result) {
$state.go('app.home');
});
};
auth.logout = function() {
Auth.logout();
};
});
Services
login: function() {
return auth.$signInWithPopup('facebook')
.then(function(result) {
var accessToken = result.credential.accessToken;
var user = Auth.getProfile(result.user.uid).$loaded();
user.then(function(profile) {
if (profile.name == undefined) {
var genderPromise = $http.get('https://graph.facebook.com/me?fields=gender&access_token=' + accessToken);
var birthdayPromise = $http.get('https://graph.facebook.com/me?fields=birthday&access_token=' + accessToken);
var locationPromise = $http.get('https://graph.facebook.com/me?fields=location&access_token=' + accessToken);
var bioPromise = $http.get('https://graph.facebook.com/me?fields=about&access_token=' + accessToken);
var imagesPromise = $http.get('https://graph.facebook.com/me/photos/uploaded?fields=source&access_token=' + accessToken);
var promises = [genderPromise, birthdayPromise, locationPromise, bioPromise, imagesPromise];
$q.all(promises).then(function(data) {
var info = result.user.providerData[0];
var profile = {
name: info.displayName,
email: info.email,
avatar: info.photoURL,
location: info.location,
gender: data[0].data.gender ? data[0].data.gender : "",
birthday: data[1].data.birthday ? data[1].data.birthday : "",
age: data[1].data.birthday ? Auth.getAge(data[1].data.birthday) : "",
location: data[2].data.location ? data[2].data.location.name : "",
bio: data[3].data.about ? data[3].data.about : "",
images: data[4].data.data
}
Auth.createProfile(result.user.uid, profile);
});
}
});
});
},