【发布时间】:2019-09-07 05:27:21
【问题描述】:
我在将对象放入并使其处于我的应用程序状态时遇到问题。
我需要使用从firebase.user 和user.getIdTokenResult(true) 返回的数据挂载一个对象。
示例:
userLogged = {
uid: user.uid,
displayName: user.displayName
admin: false,
};
const token = await user.getIdTokenResult (true);
userLogged.admin = token.claims.admin;
逻辑与上面的类似,但是我只需要使用 Rxjs 运算符来执行此操作,以便我可以将这个对象隔离在我的应用程序的状态中。
@Effect
@Effect()
getUser$: Observable<Action> = this.actions$.pipe(
ofType(auth.AuthActionTypes.GET_USER),
switchMap(() => this.authService.getUser().pipe(
map(user => {
const userLogged = {
uid: user.uid,
displayName: user.displayName,
admin: false,
}
// **** i need call user.getIdTokenResult() ******
// and get claims.admin and assign to userLogged object admin.
// authState = {
// uid: user.uid,
// displayName: user.displayName,
// admin: true, // true or false
// }
return new auth.Authenticated(userLogged);
}),
catchError((err => of(new auth.AuthError(err))))
)
我仍在使用 Rxjs 使用响应式编程来调整自己,所以我很难合并封装的 Observables 数据。
【问题讨论】:
标签: typescript rxjs firebase-authentication reactive-programming ngrx