Har*_*ger 7 firebase typescript firebase-authentication angularfire2 angular
我想检查我的adminauthguard,如果用户设置了adminflag(在Firebase中使用angularfire2)
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):Observable<boolean> | boolean {
return this.loginservice.af.auth.map((auth) => {
if(auth == null) {
return false;
} else {
this.membersservice.get(auth.uid).subscribe(users => {
if(users.admin == true) {
return true;
} else {
return false;
}
})
}
});
Run Code Online (Sandbox Code Playgroud)
如何在可观察的内部解析observable?
小智 15
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):Observable<boolean> | boolean {
return new Observable<boolean>( observer => {
this.loginservice.af.auth.map((auth) => {
if(auth == null) {
observer.next(false);
} else {
this.membersservice.get(auth.uid).subscribe(users => {
if(users.admin == true) {
observer.next(true);
} else {
observer.next(false);
}
})
}
});
Run Code Online (Sandbox Code Playgroud)
不是1000%确定这是否适用于您的服务Observables,因为我不完全知道Angular2的Firebase(仅限iOS),但是这样您创建了一个只根据闭包内发生的事件发出值的observable.
您可能需要确保(通过测试)的唯一事情是您不会遇到未定义的状态,例如像您发出true和false的异步危险.
| 归档时间: |
|
| 查看次数: |
14393 次 |
| 最近记录: |