Firebase Firestore规则:地图数组

Firebase Firestore规则:地图数组,firebase,google-cloud-firestore,firebase-security,Firebase,Google Cloud Firestore,Firebase Security,我的数据中有以下体系结构: roles : 0 : id : xxx name : xxx 1 : id : xxx name : xxx 我想要一个规则,允许我检查用户ID是否等于角色数组中的一个ID,有人有主意吗 谢谢你,祝你今天愉快 这种数据结构是不可能的 一个选项是将“id”值复制到仅包含这些字符串的数组字段中 roleIds: 0: id-string-0 1: id-string-1

我的数据中有以下体系结构:

roles :

    0 :
        id : xxx
        name : xxx
   
    1 :
        id : xxx
        name : xxx
我想要一个规则,允许我检查用户ID是否等于角色数组中的一个ID,有人有主意吗


谢谢你,祝你今天愉快

这种数据结构是不可能的

一个选项是将“id”值复制到仅包含这些字符串的数组字段中

roleIds:
  0: id-string-0
  1: id-string-1
然后,要检查
id
是否在该列表中,您可以使用:


因此,一个解决方案是创建两个列表,一个带ID,一个带名称?如果您还需要名称,您可以这样做。我只显示id字符串,因为这些是规则所必需的。
allow read: if resource.data.roleIds.hasAny([id]);