J'ai de nombreuses méthodes qui nécessitent le currentUserId. J'ai injectait la ma AuthService obtenir et stocker l'utilisateur comme ceci:Comment obtenir l'utilisateur actuel authentifié angularfire2 (angulaire) afin qu'il soit utilisable à temps pour les méthodes de classe?
// Code AuthService
getAuthorizationState() {
return this.afAuth.authState;
}
// Flux code des composants
constructor(...auth: AuthService...) {
this.user = this.auth.getAthorizationState();
this.user.subscribe(
(value) => {
console.log('value', value);
this.currentUser = value;
}
);
}
// This tends to throw an error can not get property uid of undefined
getUserFeed(uri: string): Obervable<any> {
return this.getFeed(`feed/${this.currentUser.uid})`)
}
// So have been resorting to this
getUserFeed(uri: string): Obervable<any> {
this.user.map((user) => {return user.uid})
.flatMap((currentUserId) => {
return this.getFeed(`feed/${currentUserId})`)
});
}
Problème: Been d'avoir à fais cela avec everymethod. Dans angularjs je me souviens que je croyais en utilisant la méthode de résolution pour aider à ce problème.
Question: Existe-t-il un moyen 'app global' d'obtenir et de stocker les informations de l'utilisateur authentifié actuel afin qu'il soit déjà présent lors de l'appel d'une méthode dans un composant ou un service injecteur?