firebase-将特定字段设置为私有

时间:2018-07-26 08:40:30

标签: firebase google-cloud-firestore firebase-security-rules

我想将某些字段设置为用户个人资料上的私有字段。我有一个带有名称,电子邮件等的用户文档,但是我想使金牌字段为只读,因为我计划在用户进行应用内购买时使用云功能来更新此值。我之前没有进行过应用购买,所以这是我想到的唯一方法。

我了解使用Firestore安全规则时可以在路径中使用通配符var,但是据我所知,我只能使用通配符var代替文档和集合。

1 个答案:

答案 0 :(得分:2)

您是正确的,通配符只能用于标识集合和文档,而不能用于标识字段。但是,您可以选择的一个方法是创建一个额外的“私有集合”,您可以使用标准安全规则对其进行保护。例如-

  • 用户

    • user1
      • 电子邮件
      • 名称
  • 黄金

    • user1
      • goldValue

那么,在您的安全中,其外观可能类似于-

service cloud.firestore {
  match /databases/{database}/documents {
    match /gold/{userId} {
      allow read, update, delete: if request.auth.uid == userId
      allow create: if request.auth.uid != null;
    }
    match /users/{document=**} {
      allow read;
      allow write: if request.auth.uid != null;
    }
  }
}