0

我正在学习使用我的 Angular 项目实现的 firebase,但遇到了 .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);
}

谢谢

4

1 回答 1

0

服务的object()方法AngularFireDatabase不返回 observable,它返回一个AngularFireObject. 该服务允许您以不同方式进行数据操作以及创建可观察流。

而是使用提供的可观察流方法之一,例如valueChanges().

get(uid: string){
  return this.db.object('/users/' + uid).valueChanges();
}
于 2017-11-20T21:02:03.617 回答