获取当前用户登录Angular-Firebase

时间:2019-03-02 17:22:53

标签: angular typescript firebase firebase-authentication

我需要将用户ID登录到我的Web应用程序中,这是我的身份验证服务。ts:

export class AuthService {
  private authState: Observable<firebase.User>;
  public currentUser: firebase.User = null;

  constructor(
   public afAuth: AngularFireAuth,
   public firestore: AngularFirestore,
   private router: Router) {
    this.authState = this.afAuth.authState;

    this.authState.subscribe(user => {
      if (user) {
        this.currentUser = user;
        console.log('AUTHSTATE USER', user.uid); //this works
        this.router.navigate(['dashboard']);
      } else {
        console.log('AUTHSTATE USER EMPTY', user);
        this.currentUser = null;
      }
    },
    err => {
      console.log('Please try again')
    });
 }
... //STUFF
}

如果有这段代码,我可以登录控制台user id,但是我真正需要的是使用该用户ID来获取关联的文档。

这是我的主要组成部分。

export class MainComponent {


  userId: string = '';
  private authState: Observable<firebase.User>;
  public currentUser: firebase.User = null;

  constructor(
      public authService: AuthService,
      public firestore: AngularFirestore,
      private router: Router) {
  }


  ngOnInit() {
    console.log(this.authService.currentUser) //this log 'null'
  }
  ...//STUFF

}

当我将this.authService.currentUser登录到控制台时,我得到了null的结果。 我想将auth服务中的user.uid存储到userId变量中,并将其存储到主要组件中。

我想问题是在auth服务之前加载了主要组件,所以我无法获得user ID

你们能告诉我这个窍门吗?谢谢

0 个答案:

没有答案