Eig*_*ice 1 firebase firebase-security google-cloud-firestore
我正在尝试在 Cloud Firestore 中实现我认为的基本安全规则,即允许对特定集合进行读取访问。
service cloud.firestore {
match /databases/{collectionName}/documents {
match /{document=**}{
allow read : if collectionName=="metadata";
}
}
}
Run Code Online (Sandbox Code Playgroud)
因此,在规则游乐场中, 的 查询/metadata/status被拒绝,但是,如果我将运算符切换为,!=而不是==,它允许对任何集合进行任何查询,而不仅仅是非 的查询metadata。帮助?
该通配符的位置不正确。这将是默认数据库的collectionName数据库名称,因此返回 false。尝试以下规则:(default) "(default)" == "metadata"
service cloud.firestore {
match /databases/{database}/documents {
match /{collectionName}/{doc}{
allow read : if collectionName == "metadata";
}
}
}
Run Code Online (Sandbox Code Playgroud)
这里collectionName是正在访问的集合的名称。
然而,此规则将适用于所有集合。如果您只想为“元数据”集合添加该规则,则可以为此添加单独的规则:
match /metadata/{doc} {
allow read: if true;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
866 次 |
| 最近记录: |