将Firebase安全规则添加到特定字段

将Firebase安全规则添加到特定字段,firebase,google-cloud-firestore,firebase-security,Firebase,Google Cloud Firestore,Firebase Security,我开始使用云Firestore,我对安全规则有一个问题。我需要知道是否可以为特定字段设置写入权限。例如,我有一个名为“tickets”的集合,每个文档都是: ticket\ id: "firebaseIdklnalskdla", status: "in_progress" creation_date: "28/08/2018" 我只需要为“状态”字段指定“写入”权限。这可能吗?安全规则可能如下所示(未经测试): 解释并 同时还有一个。Firebase团队制作了一个非常有

我开始使用云Firestore,我对安全规则有一个问题。我需要知道是否可以为特定字段设置写入权限。例如,我有一个名为“tickets”的集合,每个文档都是:

ticket\
    id: "firebaseIdklnalskdla",
    status: "in_progress"
    creation_date: "28/08/2018"

我只需要为“状态”字段指定“写入”权限。这可能吗?

安全规则可能如下所示(未经测试):

解释并


同时还有一个。

Firebase团队制作了一个非常有趣的解释视频,他们在视频中讨论了这个案例:
创建文档后,您可以设置可实际更改哪些字段的限制。

问题是关于Firestore的,但您显示的是实时数据库规则。“他们非常不同。”道格·史蒂文森改变了这一点。你试过这个来看看它是否有效吗?我怀疑不会,因为Firestore不允许每个字段的安全规则。@DougStevenson意识到,在试图转换规则时,按用户组区分总比没有好。。。你可以检查请求的
数据['status']
;一般来说,Firebase可能更适合这种需求,因为它允许更细粒度的规则(一个规则不排除另一个)。。。问题的标题仍然是“Firebase”。
service cloud.firestore {
  match /databases/{database}/documents {

  // here one can limit per user and other conditions, not per field. 
  match /tickets/{ticket} {
      allow update: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.admin == true;
  }

}