我想将某些字段设置为用户个人资料上的私有字段。我有一个带有名称,电子邮件等的用户文档,但是我想使金牌字段为只读,因为我计划在用户进行应用内购买时使用云功能来更新此值。我之前没有进行过应用购买,所以这是我想到的唯一方法。
我了解使用Firestore安全规则时可以在路径中使用通配符var,但是据我所知,我只能使用通配符var代替文档和集合。
答案 0 :(得分:2)
您是正确的,通配符只能用于标识集合和文档,而不能用于标识字段。但是,您可以选择的一个方法是创建一个额外的“私有集合”,您可以使用标准安全规则对其进行保护。例如-
用户
黄金
那么,在您的安全中,其外观可能类似于-
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;
}
}
}