Angular Firestore返回用户文档

时间:2019-07-14 16:25:29

标签: angular typescript firebase google-cloud-firestore firebase-authentication

我正在尝试创建一个全局用户服务,其中任何组件都可以通过实时更改在 Firestore 中检索当前用户的文档。

这是我的全局用户服务方法:

  getUser() {
    let userDoc: AngularFirestoreDocument<User>;
    return this.afAuth.auth.onAuthStateChanged(user => {
      if (user) {
        return this.afs.doc('users/' + this.afAuth.auth.currentUser.uid).valueChanges();
      }
    });
  }

这是我导入用户服务的组件:

  ngOnInit() {
    let user = this.userService.getUser();
  }

我知道我需要订阅valueChanges ...但是从我的组件中,我遇到了错误。

1 个答案:

答案 0 :(得分:0)

尝试这样:

服务:

getUser() {
    let userDoc: AngularFirestoreDocument<User>;
    this.afAuth.auth.onAuthStateChanged(user => {
      if (user) {
        return this.afs.doc('users/' + this.afAuth.auth.currentUser.uid).get();
      }
    });
  }

组件:

ngOnInit() {
     this.userService.getUser().subscribe(
          res => {
            let user = res.data()
          }
      );
 }