首页 > 解决方案 > Firestore 安全规则:比较地图数组

问题描述

我正在为用户编写安全规则。我希望用户能够只更新他们个人资料中的某些部分,比如国家、城市、街道、姓名、姓氏。但我想限制他们访问关于他们的更新评论(这是一组地图)。检查用户是否试图覆盖简单的字段值是相当容易的,但是是否有可能以某种方式比较地图数组?限制用户访问的一种方法是为评论创建一个不同的集合,但我更愿意将它保存在一个地方,以避免额外的阅读。我意识到比较地图数组对于firestore来说可能太多了,但我想确定它是否可能。

就像是:

match /users/{userId} {
  allow update: if isAuthorized() && request.resource.data['reviews'] == resource.data['reviews'];}

数据库模型

标签: google-cloud-firestorefirebase-security

解决方案


推荐阅读