我需要将对存储在Firestore中的Meeting对象的访问权限限制为特定的用户ID(会议参与者)。
会议示例:
{
name: "Topic 1";
participantsIds : [
"0YClg4mgljK8m16znDrW",
"xFRCam5joc3nDW5jHWT5"
];
}
要从Firestore为特定参与者加载会议,我可以轻松地在带有“ array-contains”运算符的where查询中使用。
如何编写Firestore安全规则以防止未与会议参与者(不在partsIds数组中)的用户阅读?
是否有更好的方法来存储与会人员并轻松查询和编写安全规则?
答案 0 :(得分:1)
Firestore列表类型字段在安全规则中显示为List个对象。您可以使用in
运算符检查列表中是否存在元素。假设您使用Firebase Auth来识别用户,这将仅允许participantsId
字段中列出的用户读取文档:
match /your-meetings-collection/{id} {
allow read: if request.auth.uid in resource.data.participantsId
}