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

时间:2021-04-06 15:59:12

标签: firebase google-cloud-firestore

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

2 个答案:

答案 0 :(得分:0)

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

A:
 01.0000  00.0000  00.0000  10.0000
 00.0000  01.0000  00.0000  20.0000
 00.0000  00.0000  01.0000  30.0000
 00.0000  00.0000  00.0000  01.0000

Z:
 01.0000  00.0000  00.0000  00.0000
 00.0000  01.0000  00.0000  00.0000
 00.0000  00.0000  01.0000  00.0000
 10.0000  20.0000  30.0000  01.0000

答案 1 :(得分:0)

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