Firestore安全规则:检查不存在(/ collection / document)

时间:2017-12-23 08:46:13

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

在firebase firestore安全规则中,我想仅在特定文档不存在时才允许请求。我的代码是:

match /users/{user_id} {
 allow create: if !exists(/databases/$(database)/merchants/$(request.auth.uid));
}

我很确定该文档不存在但不起作用。 exists()!exists()都会以某种方式给出错误,或者!exists()可能会引发一些错误。 我甚至试过:

match /users/{user_id} {
 allow create: if exists(/databases/$(database)/merchants/$(request.auth.uid)) == false;
}

有没有办法让这项工作?

1 个答案:

答案 0 :(得分:4)

您的规则是否在数据库块中?因为我有一个类似的问题,实际上是将规则放在数据库块下面,我的规则是使用$(database)参数就像你的一样

service cloud.firestore {
    match /databases/{database}/documents {
        match /users/{user_id} {
            allow create: if !exists(/databases/$(database)/merchants/$(request.auth.uid));
        } 
    }
}