Firebase-Firestore安全规则

时间:2019-11-25 07:42:54

标签: firebase google-cloud-firestore firebase-security

在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,并尝试了其他一些设置,但每次的结果似乎都是错误的

我不介意重组数据以完成这项工作,但是我觉得我在这里丢失了一些东西,请告知。

0 个答案:

没有答案