Где именно получить данные внутри сервиса (ngOnInit или внутри конструктора)? - PullRequest
0 голосов
/ 07 апреля 2020

При выходе из моего приложения ioni c angular Я использую метод auth.signOut (). Но когда я регистрируюсь с новым электронным письмом, в домашнем компоненте он получает данные от ранее подписанного пользователя. Похоже, что конструктор службы не вызывается. Когда я перезагружаюсь, все работает нормально.

constructor(
private authService: AuthService,
private db: AngularFireDatabase,
) {
this.getUserId();
this.patientsRef = db.list(`/${this.loggedUserId}/patients`);
this.afPatients = this.patientsRef.snapshotChanges()
    .pipe(
      map(changes =>
        changes.map(c => ({ id: c.payload.key, ...c.payload.val()}))
        )
    );
} 

getUserId() {
this.authSub = this.authService.userId
.pipe(
  take(1)
).subscribe(userId => {
  if (!userId) {
    return;
  } else {
    this.loggedUserId = userId.toString();
  }
});
} 

1 Ответ

0 голосов
/ 07 апреля 2020

Вы можете позвонить отписаться внутри auth.signOut(). Также было бы лучше, если бы вы предоставили пример кода.

...