2016-08-24 4 views
1

пытается получить currentUser в angularfire2. какой тип это раскрывает?Свойство 'currentUser' не существует в типе 'FirebaseAuthState'

https://firebase.google.com/docs/reference/js/firebase.auth.Auth

это не очевидно для меня от изучения этого наблюдаемый:

constructor(private auth: FirebaseAuth) { 
    auth.subscribe((user) => console.log('user is', user));  
} 

ответ

0

user объекта, который я получаю от FirebaseAuth наблюдаемого содержит следующие свойства:

  • provider
  • uid
  • auth

Последний из них - auth - это currentUser. Если вы посмотрите на source, вы увидите, что свойство auth - это Firebase User.

Вы можете проверить это с помощью instanceof:

constructor(private auth: FirebaseAuth) { 
    auth.subscribe(
     (user) => { 
      if (user) { 
       console.log('user.auth is a User instance = ' + (currentUser instanceof firebase.User)); 
       let currentUser = user.auth; 
       // ... 
      } else { 
       console.log('no user signed in'); 
      } 
     } 
    ); 
} 
+0

спасибо. то, что отсутствует, это метод updateProfile. но я тоже не вижу этого в источнике auth_backend.ts. https://firebase.google.com/docs/auth/web/manage-users#update_a_users_profile – okhobb

+0

и я думаю, что это ответ. должны были лучше googled. https://github.com/angular/angularfire2/issues/281 – okhobb

+0

Свойство 'user.auth' является экземпляром' User', поэтому у него есть метод 'updateProfile'. То есть вы можете вызвать 'user.auth.updateProfile (...)'. Если вы смотрите на 'user.auth' в консоли, может быть не очевидно, что существует метод' updateProfile', так как он находится в прототипе. – cartant

Смежные вопросы