Firebase规则赋予存储在地图中的Firebase用户ID特权

时间:2018-10-26 01:01:42

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

我想给存储在moderdores文档中的用户id提供delete privs: enter image description here

遵循规则使用户可以删除自己的数据,但不能删除其他用户数据:

 service cloud.firestore {
 match /databases/{database}/documents {
 match /Registros/{registroId} {
  allow read; 
  allow delete: if request.auth.uid == resource.data.userid //||request.auth.uid == resource.data.userid;
  allow create, update: if request.auth.uid != null;

}

}
}

我想为存储在上面文档中的用户添加一个OR。

这怎么办?

我将主持人的用户ID存储在一个值中。如何在规则中访问此地图?

1 个答案:

答案 0 :(得分:0)

对于有相同问题的任何人:

找到了解决方案:

service cloud.firestore {
match /databases/{database}/documents {
match /Registros/{registroId} {
    function isSignedIn() {
      return request.auth != null;
    }
    function getUser() {
      return request.auth.uid;
    }
    function isOneOfModerator(array) {
      return isSignedIn() && (getUser() in array.data.users);
    }


  allow read; 
  allow delete: if isOneOfModerator(get(/databases/$(database)/documents/Admins/moderador))
  allow create, update: if isSignedIn();

}
}
}