我正在学习firebase以实现我的角度项目,但遇到了.switchMap()运算符的问题。我的理解是它应该得到一个可观察的并切换到另一个。我正在尝试获取firebase用户并切换到经过身份验证的应用程序用户。
错误: AngularFireObject< {}>不能分配给parm类型(值:用户,索引:数字)
这是我的代码
AuthGuard:
canActivate(): Observable<boolean>{
return this.auth.user$
.switchMap(user => this.userService.get(user.uid)) <-- error
.map(appUser => appUser.isAdmin)
}
UserService:
get(uid:string){
return this.db.object('/users/' + uid);
}
由于
答案 0 :(得分:0)
object()
服务的AngularFireDatabase
方法未返回observable,它返回AngularFireObject
。此服务允许您以不同的方式进行数据操作以及创建可观察的流。
而是使用像valueChanges()
这样提供的一种可观察流方法。
get(uid: string){
return this.db.object('/users/' + uid).valueChanges();
}