google-cloud-firestore - Firestore 安全规则:比较地图数组
问题描述
我正在为用户编写安全规则。我希望用户能够只更新他们个人资料中的某些部分,比如国家、城市、街道、姓名、姓氏。但我想限制他们访问关于他们的更新评论(这是一组地图)。检查用户是否试图覆盖简单的字段值是相当容易的,但是是否有可能以某种方式比较地图数组?限制用户访问的一种方法是为评论创建一个不同的集合,但我更愿意将它保存在一个地方,以避免额外的阅读。我意识到比较地图数组对于firestore来说可能太多了,但我想确定它是否可能。
就像是:
match /users/{userId} {
allow update: if isAuthorized() && request.resource.data['reviews'] == resource.data['reviews'];}