Я пытаюсь вернуть наблюдаемое, когда получаю определенное значение у подписчика, но я терплю неудачу.
Это код:
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):Observable<boolean> {
// get route to be activated
this.routeToActivate = route.routeConfig.path;
// get user access levels
return this._firebase.isUserAdmin <-- returns Subscription, not Observable
.map(user => user.access_level)
.subscribe( access => {
// I need to return an observable here
});
}
Не хватает ресурсов для наблюдаемых в angular 2, поэтому я не знаю, с чего начать. Может ли кто-нибудь помочь с этим, пожалуйста?
UPDATE → Рабочая версия
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):Observable<boolean> {
// get route to be activated
this.routeToActivate = route.routeConfig.path;
// get user access levels
return this._firebase.isUserAdmin
.map(user => {
let accessLevel = user.access_level;
if (accessLevel === 'admin' ) {
return true;
}
}).first();
}