在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;
}
有没有办法让这项工作?
答案 0 :(得分:4)
您的规则是否在数据库块中?因为我有一个类似的问题,实际上是将规则放在数据库块下面,我的规则是使用$(database)
参数就像你的一样
service cloud.firestore {
match /databases/{database}/documents {
match /users/{user_id} {
allow create: if !exists(/databases/$(database)/merchants/$(request.auth.uid));
}
}
}