例如,以下规则将失败:allow update: if request.auth.uid == resource.data.creator.id;
我的收藏是Tasks / {taskId} 任务包含:
{
"Title",
// Creator is An object which contains the user who created it:
"Creator": {
"email",
"id"
}
}
因此,对于上面的示例,即使用户 创建者
,也不允许用户更新它答案 0 :(得分:3)
显然它不是在官方文档中写的,但我解决这个问题的方法是:
allow update if: request.auth.uid == resource.data.creator.data.id;
注意资源。数据 .creator。数据 .id因此,对于每个子文档,我们必须再次指定数据。
答案 1 :(得分:0)
要添加到Gal的答案,以下是使用userId的更复杂路径的示例。
收藏:/Projects/{projectId}
数据:users.{userId}.active
== true
规则:get(/databases/$(database)/documents/Projects/$(projectId)).data.users.data[(request.auth.uid)].data.active