根据Firestore安全规则中的字段值保护文档

时间:2020-07-01 21:03:42

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

我的firestore数据结构如下。我有一个例程和一个用户集合。每个常规文档都有一个绑定到用户的uid。尝试设置安全规则,以便用户只能编辑自己的例程和自己的用户详细信息。但是,在这一点上我还是很困。这是我到目前为止的内容。

{routine}.uid的语法不正确,但是只是为了说明我要做什么。任何帮助,将不胜感激。谢谢!

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userId} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
    }
    match /routines/{routine} {
        allow read, write: if request.auth != null && request.auth.uid == {routine}.uid
    }
  }
}

1 个答案:

答案 0 :(得分:0)

如果您试图使用文档的内容来确定对其的访问,则需要在规则中使用resource。我强烈建议您阅读documentationresource.data包含受规则保护的文档中字段的映射:

    match /routines/{routine} {
        allow read, write: if request.auth != null && request.auth.uid == resource.data.uid;
    }