安全规则Firestore

时间:2019-02-12 09:45:03

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

我正在尝试在Firestore中保护我的数据。我已经阅读了文档并观看了一些视频,但是在正确设置方面仍然有些困难。

我构建的是一个项目应用程序。使用这样的数据结构:

function updateResults() {
  DWRUtil.removeAllRows("apartmentsbody");

  var bedrooms = document.getElementById("bedrooms").value;
  var bathrooms = document.getElementById("bathrooms").value;
  var price = document.getElementById("price").value;

  ApartmentDAO.findApartments(fillTable, bedrooms, bathrooms, price);

  $("resultTable").style.display = '';
}

只有经过身份验证的用户才能读取和写入整个数据库,并且只有同一学校的用户才能向该学校读取和写入数据。例如,只有school2中的用户可以将项目添加到school2中。

我尝试了类似的方法,但是没有用

"School": {
    school1:
    school2: {
        "Users": {
            userId: {
                "SchoolName": "school2"
            }
        }
        "Projects": {
            projectId: {
            }
       }
    }
}

有人可以告诉我如何执行此操作,也许可以给我一些有关如何考虑安全规则的很好的解释。提前非常感谢您!

1 个答案:

答案 0 :(得分:0)

您犯了一个错误,请替换此行:

 allow read, write: if get(/databases/{database}/documents/School/$(schoolName)/Users/{userId}).data.SchoolName[(schoolName)]

与此:

 allow read, write: if get(/databases/{database}/documents/School/$(schoolName)/Users/{request.auth.uid}).data.SchoolName == "school2"