В соответствии с AngularFire Auth API, $authWithOAuthRedirect
должно вернуть обещание, которое было разрешено после возвращения в ваше приложение. Я создал фабрику ниже, но обещание в login()
, похоже, не разрешает после успешного авторизации; на консоль ничего не записывается. Так что $state.go()
не стреляет, и пользователь не перенаправляется в состояние app
.
(function (angular) {
'use strict';
var module = angular.module('app');
module.factory('AuthFactory', [
'$firebaseAuth',
'$state',
'Config',
function ($firebaseAuth, $state, Config) {
var ref = new Firebase(Config.firebase.api);
var FirebaseAuth = $firebaseAuth(ref);
FirebaseAuth.login = function() {
return this.$authWithOAuthRedirect('google')
.then(function (authData) {
console.log('Logged in as:', authData.uid, authData);
$state.go('app');
})
.catch(function (error) {
console.error('Authentication failed:', error);
});
}.bind(FirebaseAuth);
return FirebaseAuth;
}
]);
}(window.angular));
Если я вхожу $getAuth
в контроллере, я могу видеть, работал Логин однажды я освежать. Так может ли кто-нибудь пролить свет на то, почему он не перенаправляется так, как ожидалось?
Я думал, что это так, я думал, что я просто что-то пропустил! Спасибо - принятый ответ. – RogerH