Firestore安全规则嵌套集合组查询

时间:2020-10-15 20:26:47

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

我有以下规则:

 -> Requests
    -> documentID
        -> name: Andrey Solera
        -> email: someemail@example.com
        -> userID: 1234ID
        -> resolved: pending => (can also be accepted or rejected)

我希望能够将新文档推入Requests节点,并且仅当发送请求的人的userID 没有< / strong>尚未添加请求。 我知道我可以将userID用作documentID,但是,如果用户提出了被拒绝的请求,可以使用{{1 }}作为userID,据我所知,不可能有历史。 是否可以使用Firestore安全规则检查嵌套对象?

1 个答案:

答案 0 :(得分:1)

安全规则可以检查特定路径下是否存在文档。但是,他们无法查询是否存在符合其他条件的文档。

因此,如果在子集合中有一个以用户的UID作为其ID的文档,则可以在规则中使用exists() call进行检查。