在 Angular 项目中实施 .switchMap 时出错
Error implementing .switchMap in Angular project
我正在学习 firebase 以通过我的 angular 项目实施,但 运行 遇到 .switchMap() 运算符的问题。我的理解是它应该得到一个可观察的并切换到另一个。我正在尝试获取 firebase 用户并切换到经过身份验证的应用程序用户。
错误: AngularFireObject<{}> 不可分配给类型的参数(值:用户,索引:数字)
这是我的代码
授权卫士:
canActivate(): Observable<boolean>{
return this.auth.user$
.switchMap(user => this.userService.get(user.uid)) <-- error
.map(appUser => appUser.isAdmin)
}
用户服务:
get(uid:string){
return this.db.object('/users/' + uid);
}
谢谢
AngularFireDatabase
服务的 object()
方法不是 return 可观察的,它 return 是 AngularFireObject
。此服务允许您以不同方式进行数据操作以及创建可观察流。
而是使用提供的一种可观察流方法,如 valueChanges()
。
get(uid: string){
return this.db.object('/users/' + uid).valueChanges();
}
我正在学习 firebase 以通过我的 angular 项目实施,但 运行 遇到 .switchMap() 运算符的问题。我的理解是它应该得到一个可观察的并切换到另一个。我正在尝试获取 firebase 用户并切换到经过身份验证的应用程序用户。
错误: AngularFireObject<{}> 不可分配给类型的参数(值:用户,索引:数字)
这是我的代码
授权卫士:
canActivate(): Observable<boolean>{
return this.auth.user$
.switchMap(user => this.userService.get(user.uid)) <-- error
.map(appUser => appUser.isAdmin)
}
用户服务:
get(uid:string){
return this.db.object('/users/' + uid);
}
谢谢
AngularFireDatabase
服务的 object()
方法不是 return 可观察的,它 return 是 AngularFireObject
。此服务允许您以不同方式进行数据操作以及创建可观察流。
而是使用提供的一种可观察流方法,如 valueChanges()
。
get(uid: string){
return this.db.object('/users/' + uid).valueChanges();
}