до

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

Кажущаяся простой загвоздка, с которой я столкнулся, заключается в том, что мне нужно знать UID пользователей, чтобы запрашивать эти данные у Firebase (мое состояние разрешений может обращаться только к ключу внутри «/ users» с собственным UID - довольно стандартно).

Я обнаружил, что для получения UID мне нужно подписаться на наблюдаемую af.auth, а затем внутри нее запросить пользовательские данные, используя af.auth.uid - что я и сделал успешно.

Я также отметил, что af.database.object создает другую наблюдаемую информацию, к которой я теоретически могу получить доступ с помощью Asyc в моем HTML. Проблема в том, что я не могу получить ссылку на данные пользователя, полученные в auth.subscribe, где-либо еще в моем приложении (особенно в HTML).

Я могу console.log подписаться на пользователя, который подтверждает, что я получаю данные.

Пожалуйста, исправьте мое понимание или научите меня, как я могу получить доступ к этим данным, я очень плохо знаком с понятиями Typescript и Observables.

Javascript Angular 2-компонентный

export class AppComponent {
  title = 'Webroot';
  user: FirebaseObjectObservable<any>;
  constructor(public af: AngularFire) {
    af.auth.subscribe(function(auth){
      if(auth != null){
        this.user = af.database.object("users/"+auth.uid)
        this.user.subscribe(user => console.log(user));
      }
      else{
        console.log("Auth is Null!")
      }
    });
  }
}

HTML

<div> {{ (user | async | json) }} </div>

Ответы на вопрос(1)

Ваш ответ на вопрос