Я пытаюсь установить защиту для угловых маршрутов в зависимости от данных пользователя в базе данных реального времени firebase.Я установил привилегию администратора как панель мониторинга: true в разделе базы данных пользователя в реальном времени (, как на этом рисунке ).И я хотел бы дать разрешение на ввод некоторых конкретных маршрутов, только если у пользователя есть свойство dashboard: true в его / ее базе данных.Я попробовал ниже код.Но он всегда перенаправляет на корневой маршрут (localhost: 4200)
canActivate(): Observable<boolean> {
return this.firebaseAuth.authState.map(auth => {
if (auth) {
this.authService.getUserData(auth.uid).subscribe(userData => {
if (userData['dashboard'] === true) {
return true;
} else {
this.router.navigate(['/login']);
return false;
}
})
} else {
this.router.navigate(['/login']);
return false;
}
});
}