【问题标题】:Firestore rules to allow read a field if below certain value如果低于某个值,Firestore 规则允许读取字段
【发布时间】:2021-04-06 15:59:12
【问题描述】:

一个包含多个字段的文档,但我想要一个字段的条件,只有当它低于某个值时才能读取它.. 其余字段可以随时读取.. 所以在用户end 它将返回该条件字段的值或 null

【问题讨论】:

    标签: firebase google-cloud-firestore


    【解决方案1】:

    知道了,所以为此,只需编写一个 if 语句来检查每个输入字段以查看它是否满足您的条件。

        if(input1.value == "juice" && input2.value != "apple"){
           docRef
                .collection("posts")
                .doc()
                .collection("burgers")
                .add({
                input1: input1,
                input2: input2
        })
        }else{
     console.log("error")
    }
    

    【讨论】:

      【解决方案2】:

      安全规则控制对文档的访问,而不是特定字段。
      因此,如果您希望某些字段始终可以访问,同时控制对其他字段的访问,您有两种可能性:
      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;
          }
        }
      }
      

      【讨论】:

        猜你喜欢
        • 2020-09-22
        • 2021-09-08
        • 2020-08-17
        • 2022-12-07
        • 1970-01-01
        • 2020-09-18
        • 1970-01-01
        • 2019-08-11
        • 1970-01-01
        相关资源
        最近更新 更多