Google cloud firestore 云Firestore为额外敏感用户数据拆分访问级别

Google cloud firestore 云Firestore为额外敏感用户数据拆分访问级别,google-cloud-firestore,Google Cloud Firestore,我想将对用户文档敏感属性的访问限制在一组较小的客户机上。我目前的理解是,有两种方法可以分割数据,以便我们可以为每个部分制定安全规则: 创建使用相同文档ID的Users集合和顶级SensitiveUserData集合,并且仅在需要和允许时为用户检索SensitiveUserData 在User文档中创建SensitiveUserData子集合。此集合始终只包含一个文档,但ID并不重要 这些方法中的哪一种(或第三种)通常是首选的?这两种方法都不比另一种好,而且都有有效的用例。最终,这是个人偏好和(通

我想将对
用户
文档敏感属性的访问限制在一组较小的客户机上。我目前的理解是,有两种方法可以分割数据,以便我们可以为每个部分制定安全规则:

  • 创建使用相同文档ID的
    Users
    集合和顶级
    SensitiveUserData
    集合,并且仅在需要和允许时为用户检索
    SensitiveUserData
  • User
    文档中创建
    SensitiveUserData
    子集合。此集合始终只包含一个文档,但ID并不重要

  • 这些方法中的哪一种(或第三种)通常是首选的?

    这两种方法都不比另一种好,而且都有有效的用例。最终,这是个人偏好和(通常是不断发展的)对应用程序用例的洞察的结合

    在许多情况下,首选使用子集合,因为它允许数据更好地分布在物理存储上,这反过来有助于提高吞吐量。但在这种情况下,我怀疑这会有什么不同,因为您可能会在
    SensitiveUserData
    Users
    集合中使用用户ID作为键,因此它们将以类似的方式分发

    就我个人而言,我经常以顶级收藏而告终。但这很可能与我在Firebase实时数据库中建模数据的悠久历史有关,在Firebase实时数据库中,访问权限是继承的,因此不能在那里隐藏子集合