在Firestore中,我有一个名为“问题”的集合,每个问题都有几个字段,其中包括“成绩”和“主题”。我需要根据这两个字段(年级和主题)将问题的访问权限限制为某些用户
每个教师用户都有不同的访问范围,如果其中一位教授4年级英语,那并不意味着他可以使用所有年级的英语或其他4年级的课程。
我试图创建一个名为“ Classes”的第3个集合,每个文档具有1个等级,1个主题和唯一的uid,然后在与等级和主题匹配的每个问题中使用class uid,并具有如下的安全规则:>
function isClassOwner() {
return resource.data.classID in get(/databases/$(database)/documents/users/$(request.auth.uid)).data.classes;
}
match /questions/{document=**} {
allow read, write: if isClassOwner();
}
用户中的classes字段是类的uid数组,我也尝试使用request.resource,并尝试了其他一些设置,但每次的结果似乎都是错误的
我不介意重组数据以完成这项工作,但是我觉得我在这里丢失了一些东西,请告知。