我有很多藏书可供阅读,但不允许写。我还有一个馆藏,其中禁止阅读,但允许写作。如何正确做到这一点? 我尝试了许多方法来正确地规定规则。官方文档无法解决我的问题。
它应该遵循以下原则:
match /{document=**} {
allow read: if true;
allow write: if false;
}
match /FOLDER/FOLDER {
allow read: if false;
allow write: if true;
}
但是它不起作用,因为重叠匹配语句。 “在多个允许表达式与一个请求匹配的情况下,如果任一条件为真,则允许访问”
也尝试过exists
和get
。
这些集合之间没有公共字段。
如何正确执行此操作?
答案 0 :(得分:1)
由于此规则授予对整个数据库的无条件读访问权限:
match /{document=**} {
allow read: if true;
allow write: if false;
}
如果您不希望某些集合具有读取权限,则根本不能使用它。您应该删除该规则,并为要允许访问的每个集合编写新规则 。
您也可以尝试从全局规则中删除一个不可读的集合,但是我不建议您这样做,因为您不清楚要做什么:
match /{document=**} {
allow read: if document[0] != "unreadable-collection";
allow write: if false;
}