Google cloud firestore Firestore规则和数据结构
我有一个关于数据结构和规则的问题。。。我有用户可以投票的内容。大概是这样的: Firestore对象:Google cloud firestore Firestore规则和数据结构,google-cloud-firestore,firebase-security,Google Cloud Firestore,Firebase Security,我有一个关于数据结构和规则的问题。。。我有用户可以投票的内容。大概是这样的: Firestore对象: { name: "Cat", description: "A cat named Cat", votes: 56 } 现在。。。我希望经过身份验证的用户能够对投票进行更新访问,但不能对对象的任何其他值进行更新,当然还有读取权限,因为必须显示内容 我这样做是因为我想在显示内容时避免额外的查询 我是否应该在保存投票的地方创建另一个集合“投票”,
{
name: "Cat",
description: "A cat named Cat",
votes: 56
}
现在。。。我希望经过身份验证的用户能够对投票进行更新访问,但不能对对象的任何其他值进行更新,当然还有读取权限,因为必须显示内容
我这样做是因为我想在显示内容时避免额外的查询
我是否应该在保存投票的地方创建另一个集合“投票”,并为每个文档发出额外的请求以获取投票?在规则中,您可以在写入之前和之后访问数据的状态-因此您可以测试特定字段以确保它们没有更改:
function existing() {
return resource.data;
}
function resulting() {
return request.resource.data;
}
function matchField(fieldName) {
return existing()[fieldName] == resulting()[fieldName];
}
....
allow update: if matchField("name") && matchField("description")
....
这些函数只是使规则更易于阅读