Получить текущий пользователь вошел в Angular - Firebase - PullRequest
0 голосов
/ 02 марта 2019

Мне нужно, чтобы идентификатор пользователя вошел в мое веб-приложение, это мой auth service.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, но что ядействительно нужно использовать этот идентификатор пользователя для получения связанного документа.

это мой главный компонент .ts

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 результат.Я хотел бы сохранить эту user.uid из службы аутентификации в переменную userId в главном компоненте.

Я предполагаю, что проблема в том, что основной компонент загружается до службы аутентификации, поэтому я могуuser ID

Можете ли вы, ребята, сказать мне трюк?Thankyou

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...