考虑Firebase文档中的示例
select id_acc, model, value, actual
from models
unpivot (value for model in (model_1 as 'Model 1',
model_2 as 'Model 2',
model_3 as 'Model 3'));
地标子集合具有明确的安全规则。假设我在城市下还有其他子集合。如果我想要的规则与城市的规则相同,是否需要像 landmarks 一样将它们定义为单独的块?或者我可以将service cloud.firestore {
match /databases/{database}/documents {
match /cities/{city} {
allow read, write: if <condition>;
// Explicitly define rules for the 'landmarks' subcollection
match /landmarks/{landmark} {
allow read, write: if <condition>;
}
}
}
}
更改为/cities/{city}
吗?
哪种方法最好?谢谢您的宝贵时间。
答案 0 :(得分:0)
从您的问题来看,我认为您有两个子集合,地标和大写字母;因此,您需要为子集合“地标”使用不同的规则。要实现此目的,您必须明确定义每个子集合的安全规则。
您的规则应该是这样的
service cloud.firestore {
match /databases/{database}/documents {
match /cities/{city} {
allow read, write: if <condition>;
// Explicitly define rules for the 'landmarks' subcollection
match /landmarks/{landmark} {
allow read, write: if <condition>;
}
// Explicitly define rules for the 'capital' subcollection
match /capital/{capitals} {
allow read, write: if <condition>;
}
}
}
}
如果您编写这样的规则
service cloud.firestore {
match /databases/{database}/documents {
match /cities/{city=**} {
allow read, write;
}
}
}
即使您明确为某些子集合编写规则,此规则也将适用于city集合中的每个子集合。