如何将报告的 comments/photos 存储在 firestore 中?

How do I store reported comments/photos in firestore?

我想学习 firestore,为此我创建了一个复制 Instagram 的小项目。当然不是所有功能,只是最基本的功能 - 照片共享、评论以及报告评论或照片的可能性。

我现在的 collection 是这样的:

users -> user_id -> [用户名,电子邮件]
following -> user_id -> usersFollowing -> [用户 ID 列表]

//我最难的collection

posts -> user_id -> userPosts -> post_id (这是照片 ID) -> [caption, creationDate, url [likes], [comments]] //likes and comments are subcollections 我分别存储喜欢照片的人的 id,在评论中我存储人的 id评论者和实际评论

这是我的问题。我希望能够举报照片或评论(辱骂、不当等)。我想创建 collection reports 在那里我将有两个 subcollections photoscomments;每个 subcollection 都有一个文档 photoIdcommentId,每个文档将包含以下信息:reportedBy <- 此人的 user_id谁报告了 photo/comment; date <-报告日期

到目前为止一切顺利。但是,如果 photo/comment 最终有很多报告,我可能想删除它。我怎么做?我的 Reports collection 中只存储了 photo/comment id。我想这表明我的 collection 结构不正确?也许在 reportedBydate 字段旁边我应该存储更多字段:比如 userId <- 创建 post (照片或评论)的用户的 ID 和 postId <- 该特定评论所属的 post 的 ID。这是一个好方法还是不是真的?有没有更好的建议?

您实际上可以将特定 post ID 的报告集合存储为文档 ID,如下所示:

还有一个子集合,其中包含带有报告者 UID 的文档、他们的评论以及一些元数据。 每当用户报告 post 时,只需增加报告文档中的值,这样您就可以获得更好的统计数据。

来到您想要删除 post 的部分,因为它刚刚被大量报告。您可以尝试 Firestore Triggers for Cloud Functions,当每次 报告 post 时,它将 运行 一个函数。然后如果举报次数太多,可以删除。

这可能有点贵,所以 运行 每小时 scheduled cloud function 一个 scheduled cloud function 会很经济。只需定期 运行 函数并检查特定数量的报告中的任何 post 和 delete/hide 它。