【发布时间】:2020-03-24 18:07:55
【问题描述】:
我正在尝试实施 Firestore 安全规则,以验证在地图内创建时所做的所有条目。但是,我的问题是我不知道地图的键。我有这样的事情:
{
"name": "Tom",
"answers": {
"SomeUUID": {
"answer": "Alps",
"right": true
},
"AnotherUUID": {
"answer": "Mount Everest",
"right": false
}
}
}
要使用安全规则验证条目,我会这样做
rules_version = "2"
service cloud.firestore {
match /databases/{database}/documents {
match /answers/{answerID} {
allow read;
allow create: request.resource.data.name is string && request.resource.data.answers is map
}
}
如何在不知道地图大小或键的情况下进一步验证成员地图的内容?是否有可用于密钥的通配符?每个创建的键的值应该相同。我想做这样的事情:
allow create: request.resource.data.name is string && request.resource.data.answers &&
request.resource.data.member.$(wildcard).keys().size() == 2 && request.resource.data.member.$(wildcard).answer is string && request.resource.data.member.$(wildcard).right is bool
这是可能的还是我需要改变整个逻辑?是否有可用的通配符?
【问题讨论】:
标签: firebase google-cloud-firestore firebase-security