在AngularFirestoreDocument上使用rxjs share运算符

时间:2018-07-12 17:39:58

标签: firebase rxjs observable angularfire2

我有一个提供角度的提供商,用于维护登录用户的个人资料。因此,应用程序中几乎所有其他组件都需要订阅用户个人资料中的用户名,订阅状态等信息。个人资料本身的获取方式如下:

private _profile: Observable<any>;
constructor(private afAuth: AngularFireAuth, private afDB: AngularFirestore) {

this.afAuth.authState.subscribe(user => {
  this._user = user;
  console.log('App Auth - user: ', user);

  if (user) {
    this._profile = this.afDB.doc(`/users/${this._user.uid}/`).valueChanges();
    this._profile.subscribe(user => {
      console.log('Profile Changed: ', user.profile);
      this._subbed = !!user.profile.sub;
    });
  }
});

}

然后,我想使用rxjs(6)共享运算符将_profile共享给其他订阅者:

getUserProfile(): Observable<any> {
    return this._profile.share();
  }

,这样我就不会为该提供程序的所有其他订阅维护公开订阅。

当我从rxjs / operators导入共享并尝试在可观察的_profile上使用它时,出现错误:

Property 'share' does not exist on type 'Observable'

0 个答案:

没有答案