Google cloud firestore 在匿名帖子中存储uid不是个好主意吗?

Google cloud firestore 在匿名帖子中存储uid不是个好主意吗?,google-cloud-firestore,Google Cloud Firestore,我正在为类似Facebook的社交媒体应用程序设计Firestore数据库,并为用户提供公开发布(包括姓名)或匿名发布的选项。我曾计划将所有帖子放在顶级集合中,并使用uid字段,这样用户就可以检索和编辑自己的帖子。然而,当用户阅读匿名帖子时,这些UID会被拉下,所以很容易被黑客攻击?(例如,查找具有相同UID的非匿名帖子并公开用户。) 所以,现在我想我将把帖子作为用户的子集合,这样就不需要uid了 我的安全顾虑有效吗?如果是,子集合是更好/最好的方法吗 编辑:我的问题不是重复的,或者因为它要求保

我正在为类似Facebook的社交媒体应用程序设计Firestore数据库,并为用户提供公开发布(包括姓名)或匿名发布的选项。我曾计划将所有帖子放在顶级集合中,并使用uid字段,这样用户就可以检索和编辑自己的帖子。然而,当用户阅读匿名帖子时,这些UID会被拉下,所以很容易被黑客攻击?(例如,查找具有相同UID的非匿名帖子并公开用户。)

所以,现在我想我将把帖子作为用户的子集合,这样就不需要uid了

我的安全顾虑有效吗?如果是,子集合是更好/最好的方法吗


编辑:我的问题不是重复的,或者因为它要求保持用户的匿名性,而不是编辑他们的数据。

你的观点是正确的-用户ID可以通过初始方法公开。基于您的解决方案,有几种方法可以实现这一点

users/{uid}/posts/{pid}
我不认为这是最好的方法,因为它需要您查询
user/post
的所有子集合以显示“新闻提要”

保持当前结构&将userid设置为
anon
您可以在文档中保留当前结构并将用户id设置为
anon
。这不会让OP编辑他自己的匿名帖子。为了解决这个问题,我们可以在
users/{uid}/posts/{pid}
中创建另一个子集合。这将包含到
posts/{pid}


此方法是两种方法的组合。

您的观点是正确的-用户ID可以通过初始方法公开。基于您的解决方案,有几种方法可以实现这一点

users/{uid}/posts/{pid}
我不认为这是最好的方法,因为它需要您查询
user/post
的所有子集合以显示“新闻提要”

保持当前结构&将userid设置为
anon
您可以在文档中保留当前结构并将用户id设置为
anon
。这不会让OP编辑他自己的匿名帖子。为了解决这个问题,我们可以在
users/{uid}/posts/{pid}
中创建另一个子集合。这将包含到
posts/{pid}


此方法是两种方法的组合。

谢谢@frunkad!我认为firestore新的ish db.collectionGroup(“posts”)解决了查询子集合的这个限制,不是吗?例如,我没有看到我想按用户查询匿名帖子的用例,但我想在所有匿名帖子中查询最新的帖子hanks@frunkad!我认为firestore新的ish db.collectionGroup(“posts”)解决了查询子集合的这个限制,不是吗?例如,我没有看到我想按用户查询匿名帖子的用例,但我想查询所有匿名帖子中最近的帖子