до
ользую 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>