Использование Angularfire2 для обновления профиля пользователя - PullRequest
0 голосов
/ 31 августа 2018

Я новичок в Angular и учусь :)

При обновлении профиля пользователя он сохраняет изменения профиля, затем я получаю сообщение об ошибке на signOut, спрашивая, есть ли у кого-нибудь подсказка, что может вызвать это, код ниже ...

ERROR TypeError: Cannot read property 'updateProfile' of null
    at SafeSubscriber._next (auth.service.ts:66)
    at SafeSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.SafeSubscriber.__tryOrUnsub (Subscriber.js:207)
    at SafeSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.SafeSubscriber.next (Subscriber.js:145)
    at Subscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber._next (Subscriber.js:80)
    at Subscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.next (Subscriber.js:55)
    at angularfire2.js:49
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:388)
    at Object.onInvoke (core.js:3824)
    at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:387)
    at Zone.push../node_modules/zone.js/dist/zone.js.Zone.run (zone.js:138)

Код, который я вызываю для обновления ...

updateUserProfile() {
  this.store.dispatch(new AuthActions.SetIsPending(true));

  this.store
    .pipe(select(fromRoot.getAuthenticatedUserInformation))
.pipe(take(1)) <-- added this
    .subscribe(user => {
      this.fireauth.authState
.pipe(take(1)) <-- added this
      .subscribe(profile => {
        profile
          .updateProfile({
            displayName: user.displayName,
            photoURL: user.photoURL
          })
          .then(() => {
            this.store.dispatch(new AuthActions.SetIsPending(false));
          })
          .catch(error => {
            this.store.dispatch(new AuthActions.SetIsPending(false));
            console.log(error.message);
          });
      });
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...