Firebase Firestore允许在低于特定值时读取字段的规则

Firebase Firestore允许在低于特定值时读取字段的规则,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,一个有多个字段的文档,但我希望一个字段有一个条件,只有当它低于某个值时,它才能被读取。。其余字段可以随时读取。。。。因此,在用户端,它将返回该条件字段的值或null,因此,为此,只需编写一条if语句,检查每个输入字段是否满足您的条件 if(input1.value == "juice" && input2.value != "apple"){ docRef .collection("p

一个有多个字段的文档,但我希望一个字段有一个条件,只有当它低于某个值时,它才能被读取。。其余字段可以随时读取。。。。因此,在用户端,它将返回该条件字段的值或null,因此,为此,只需编写一条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;
    }
  }
}