【发布时间】:2021-04-06 15:59:12
【问题描述】:
一个包含多个字段的文档,但我想要一个字段的条件,只有当它低于某个值时才能读取它.. 其余字段可以随时读取.. 所以在用户end 它将返回该条件字段的值或 null
【问题讨论】:
标签: firebase google-cloud-firestore
一个包含多个字段的文档,但我想要一个字段的条件,只有当它低于某个值时才能读取它.. 其余字段可以随时读取.. 所以在用户end 它将返回该条件字段的值或 null
【问题讨论】:
标签: firebase google-cloud-firestore
知道了,所以为此,只需编写一个 if 语句来检查每个输入字段以查看它是否满足您的条件。
if(input1.value == "juice" && input2.value != "apple"){
docRef
.collection("posts")
.doc()
.collection("burgers")
.add({
input1: input1,
input2: input2
})
}else{
console.log("error")
}
【讨论】:
安全规则控制对文档的访问,而不是特定字段。
因此,如果您希望某些字段始终可以访问,同时控制对其他字段的访问,您有两种可能性:
1-将可访问字段放在一个文档中,将私有字段放在另一个文档中,然后为私有文档编写安全规则
2- 限制对文档的直接访问并通过云功能访问它,您可以在其中隐藏或显示某些字段。
如果您选择使用单独的文档,如果字段 foo 低于 123,以下安全规则将阻止访问文档:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /students/{studentId} {
allow read: if resource.data.foo >= 123;
allow write: if false;
}
}
}
【讨论】: