Google cloud firestore Firestore安全规则列表检查重复

Google cloud firestore Firestore安全规则列表检查重复,google-cloud-firestore,firebase-security,Google Cloud Firestore,Firebase Security,假设request.resource.data[field]是一个列表。我试图检查列表中的任何项目是否与其他项目重复。换句话说,我正在检查列表中是否有任何项重复了不止一次。我阅读了与列表相关的文档和参考资料,并没有找到实现此功能的方法。可以这样做吗?您可以通过以下方式检查列表类型字段中是否有重复项: 使用(不能包含重复项)将列表转换为集合 将列表的大小与集合的大小进行比较 如果集合的大小小于列表的大小,则您知道至少有一个重复项已被删除。因此,如果列表中存在重复项,则类似的内容将返回true: l

假设
request.resource.data[field]
是一个列表。我试图检查列表中的任何项目是否与其他项目重复。换句话说,我正在检查列表中是否有任何项重复了不止一次。我阅读了与列表相关的文档和参考资料,并没有找到实现此功能的方法。可以这样做吗?

您可以通过以下方式检查列表类型字段中是否有重复项:

  • 使用(不能包含重复项)将列表转换为集合
  • 将列表的大小与集合的大小进行比较
  • 如果集合的大小小于列表的大小,则您知道至少有一个重复项已被删除。因此,如果列表中存在重复项,则类似的内容将返回true:

    listField.toSet().size() < listField.size()
    
    listField.toSet().size()
    您可以通过以下方式检查列表类型字段中是否存在重复项:

  • 使用(不能包含重复项)将列表转换为集合
  • 将列表的大小与集合的大小进行比较
  • 如果集合的大小小于列表的大小,则您知道至少有一个重复项已被删除。因此,如果列表中存在重复项,则类似的内容将返回true:

    listField.toSet().size() < listField.size()
    
    listField.toSet().size()
    谢谢,我在参考资料中没有注意到这一点。它就像一个魔咒。汉克斯,我在参考资料中没有注意到这一点。它就像一个魔咒