Acesse dados autenticados com o AngularFire2
Estou usando o AngularFire2 em um projeto Angular2 para executar uma tarefa muito básica, fazer login e depois mostrar as informações dos usuários logados na página.
O problema aparentemente simples que encontrei é que eu preciso conhecer o UID do usuário para solicitar esses dados do Firebase (o estado das minhas permissões só pode acessar a chave dentro de "/ users" com o próprio UID - padrão bastante).
Eu descobri que, para obter o UID, preciso assinar o af.auth observable e, em seguida, solicitar os dados do usuário usando af.auth.uid - o que fiz com sucesso.
Também observei que o af.database.object cria outro observável, que eu posso acessar em teoria, canalizando com o Asyc no meu HTML. O problema é que parece que não consigo obter referência aos dados do usuário obtidos no auth.subscribe, em qualquer outro lugar do meu aplicativo (especificamente no HTML).
Eu posso console.log a assinatura do usuário, o que confirma que estou recebendo os dados.
Por favor, corrija meu entendimento ou ensine-me como posso acessar esses dados. Sou muito novo nos conceitos de Datilografado e Observável.
Componente Angular 2 do Javascript
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>