Не могу прочитать подписку на неопределенное - PullRequest
0 голосов
/ 17 марта 2019

Я пытаюсь получить информацию об аутентификации от Сервиса и получить эту проблему:

Не удается прочитать свойство 'подписка' из неопределенного

код услуги:

user:any;

  constructor(private afAuth: AngularFireAuth, private http:HttpClient,private router: Router) {
    this.afAuth.authState.subscribe(user=>{
      this.user = user;
    });
    console.log(this.afAuth.authState);
   }

   userinfo(){
     return this.user;
   }

код компонента:

user:any
  constructor(public afAuth:AuthService) { 
  }

  ngOnInit() {
    this.afAuth.userinfo().subscribe(userinfo =>{
      this.user = userinfo;
    })
    console.log(this.user.uid);
  }

где я здесь не так? и как я могу это исправить?

1 Ответ

1 голос
/ 17 марта 2019

Проблема в том, что userinfo возвращает User, а не Observable, поэтому у него нет метода subscribe.

Я бы изменил AuthService на

user: Observable<User>;
constructor(private afAuth: AngularFireAuth, private http:HttpClient,private router: Router) {
  this.user = this.afAuth.authState;
}

Кроме того, пересмотрите, почему вы всегда пытаетесь сохранить последнее значение в свойстве, как в Сервисе, так и в Компоненте.Угловая философия заключается в использовании подключенного Observables для генерации значений.

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