У меня есть угловое приложение и охранник маршрута.
Если пользователь подключается к domain.com/login
, когда он вошел в систему, я бы хотел переслать его на другой маршрут.
Однако одна учетная запись пользователя имеет атрибут 'admin' в firestore (admin: true
).После входа в систему я проверяю login.component.ts, чтобы увидеть, существует ли этот узел Firestore в учетной записи пользователя.Если это так, я пересылаю их в админ-панель.Если это не так, то это означает, что это клиент, который входит и перенаправляет их на другой компонент.
Однако проблема, с которой я столкнулся на данный момент, заключается в том, что я не уверен, как перенаправить пользователяк соответствующему компоненту, если они окажутся на экране входа в систему при входе в систему .Ниже мой охранник пока.Как видите, в навигационной системе маршрутизатора есть вопросительный знак, поскольку я не уверен, как определить, является ли он администратором.
export class LoginGuardService implements CanActivate {
constructor(
private router: Router,
private auth: AngularFireAuth
) { }
canActivate(): Observable<boolean> {
return this.auth.authState.pipe(
map(authState => {
if (authState) {this.router.navigate(['/?']);}
return !authState;
}),
take(1)
)
}
}