J'essaie de configurer un système d'administration dans une application pour limiter l'accès à certaines zones de l'application. C'est assez basique et crée juste un nouvel objet dans Firebase avec les informations ci-dessous. Admin est défini sur false par défaut et je le mettrai à jour manuellement à true car il y en aura très peu à gérer.Firebase, avec Angular & Nativescript - Obtention d'une valeur affectée par l'utilisateur depuis la base de données
Voici ma fonction de connexion
login() {
this.firebaseService.login(this.user)
.then(() => {
this.isAuthenticating = false;
console.log(this.user.email);
this.userDetails = <any>this.firebaseService.getUserInfo();
console.log(this.userDetails);
this.userDetails.subscribe(users => {
if(users.user.admin) {
console.log('yes');
this.routerExtensions.navigate(["/admin"], { clearHistory: true });
}
else {
console.log('no');
this.routerExtensions.navigate(["/"], { clearHistory: true });
}
});
})
.catch((message:any) => {
this.isAuthenticating = false;
});
}
Le console.log (this.userDetails) est l'impression [objet objet] sur la console.
Heres l'appel de service
getUserInfo(): Observable<any> {
return new Observable((observer: any) => {
let path = "/Users/"+ BackendService.token;
let onValueEvent = (snapshot: any) => {
this.ngZone.run(() => {
let results = this.handleSnapshot(snapshot.value);
console.log(JSON.stringify(results));
observer.next(results);
});
};
});
}
Alors, quelle est la façon la plus efficace de gérer ce que je suis en train de faire? Désolé si c'est une mauvaise question, j'utilise normalement AngularFire auth et n'ai presque aucune autre expérience que celle-ci avec firebase régulière.