У меня проблема с настройкой oauth, когда я выхожу из системы с таким эффектом:
@Effect()
logout: Observable<Action> = this.actions.ofType(UserActions.LOGOUT)
.switchMap(() => Observable.of(this.afAuth.auth.signOut()))
.map(() => new UserActions.GetUser())
.catch(err => Observable.of(new UserActions.AuthError({error: err.message})));
Все работает нормально, и вызывается UserActions.GetUser()
.Теперь, если я попытаюсь войти в систему с помощью этого эффекта и этой функции аутентификации firebase:
@Effect()
googleLogin: Observable<Action> = this.actions.ofType(UserActions.GOOGLE_LOGIN)
.switchMap(() => Observable.fromPromise(this.loginWithGoogle()))
.map(() => new UserActions.GetUser())
.catch(err => Observable.of(new UserActions.AuthError({error: err.message})));
private loginWithGoogle() {
return this.afAuth.auth.signInWithPopup(new firebase.auth.GoogleAuthProvider());
}
Вызывается новый UserActions.GetUser()
, и я вижу его в Redux DevTools, но фактический эффект не вызывается,я положил туда много console.log, чтобы посмотреть, сделал ли я что-то не так в функции, но она вообще не вызывается, и у меня есть catch
в GetUser
, но это тоже не срабатывает.
Есть ли какая-то проблема с firebase в этом случае, или я тупой?
Действия:
Получить пользователяЭффект:
@Effect()
getUser: Observable<Action> = this.actions.ofType(UserActions.GET_USER)
.switchMap(() => {
console.log('test'); // <-- Not called
return this.afAuth.authState;
})
.map(()=> {
return new UserActions.Authenticated();
});
** РЕДАКТИРОВАТЬ 1
Я сделал новое наблюдение: когда больше нет подключения к Интернету, так что база данных загружается из локальной сети, это на самом деле работает, как-то есть проблема с подключением к базе данных firebase