Я написал эти правила безопасности Firestore, чтобы разрешить только утвержденным пользователям работать с данными:
service cloud.firestore {
match /databases/{database}/documents {
match /bikes/{document} {
function getRole(role) {
return get(/databases/$(database)/documents/employees/$(request.auth.uid)).data.isApproved
}
allow read: if getRole() == true;
allow write: if getRole() == true;
}
}
}
Но получаю эту ошибку
core.js: 12501 Ошибка: ошибка или отсутствие разрешений.
в новом FirestoreError (index.cjs.js: 346)
Что не так?
Дополнительный код:
1) Запись о пожаре
1) Угловой код
getUserData() {
this.afAuthState.authState.subscribe(user => {
console.log(user)
console.log("user uid")
console.log(user.uid)
if (user) {
this.dao.getEmployeeByUID(user.uid).subscribe( res => {
if (res) {
console.log(res)
this.employee = res
this.role = this.employee.role
}
else console.log("please ask the admin for confirmation")
})
}
else console.log("please login")
})
}
Когда я применяю правила, я не могу получить эти (getEmployeeByUID) данные. когда нет правил - это нормально