用于根据用户对另一个集合中文档的访问权限访问集合中文档的Firestore安全规则

时间:2018-07-05 11:59:57

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

让我们考虑以下情况:

有两个用户:user-1user-2

有一个lists集合:/lists/{id}

它具有以下文档:

{ id: list-1, title: 'List 1', collaborators: { user-1: true } }
{ id: list-2, title: 'List 2', collaborators: { user-2: true } }
...

还有一个tasks集合:/tasks/{id}

它具有以下文档:

{ id: task-1, title: 'Task 1', listId: { list-1: true } }
{ id: task-2, title: 'Task 2', listId: { list-1: true } }
...

现在,让我们考虑一下user-1正在尝试使用以下查询来提取属于list-1的所有任务:

firestore.collection('tasks').where('listId.list-1', '==', true).get()

user-2也在尝试做同样的事情,即使他不是list-1的合作者:

firestore.collection('tasks').where('listId.list-1', '==', true).get()

我的问题是,如何编写安全规则,以便只有user-1可以访问属于list-1而不是user-2的任务?列表项的collaborators字段应用于控制用户有权访问的任务。

换句话说,user-1应该能够检索ID为task-1task-2的任务,而user-2不能。

0 个答案:

没有答案