Вы не можете сделать doc.data['occupation']
.
Вам нужно либо использовать data()
метод следующим образом:
if(doc.data().occupation != 'Doctor') {...}
или используйте метод get()
следующим образом:
if(doc.get('occupation') != 'Doctor') {...}
РЕДАКТИРОВАТЬ:
Кроме того, в вашем коде есть еще одна ошибка. Вы путаете использование async/await
и then()
метода. Вы должны адаптировать свой код следующим образом
var document = await firebase.firestore().collection("users").doc(uid).get();
//document is a DocumentSnapshot, we can call the get() method
if (document.get('occupation') != 'Doctor'){
window.location.href = "patientDashboard.php";
}
else {
window.location.href = "doctorDashboard.php";
}
Имейте в виду, что с этим кодом вы НЕ внедряете подлинную систему контроля доступа на основе ролей. Вы просто перенаправляете пользователя на основании значения в его user
документе. Кто-то может легко перепроектировать ваше приложение и перенаправить на неправильную страницу.
Если вы хотите настроить систему контроля доступа на основе ролей, вас может заинтересовать эта статья , которая показывает, как делать с пользовательскими претензиями. ( отказ от ответственности, я автор )