跟踪用户喜欢的帖子-扑朔迷离

时间:2020-01-06 08:12:39

标签: ios flutter google-cloud-firestore tumblr social-media

背景:

我正在尝试创建一个应用,用户可以在其中滚动帖子,并在其中一些帖子上单击“喜欢”。我在后端使用Firestore,整个过程都是Flutter应用。

问题:

我希望能够跟踪用户喜欢的帖子,因此,如果该帖子再次出现,我可以启用“喜欢”指示器。这将涉及到后端调用,以检查帖子是否被喜欢。但是,我不想为每个帖子都调用后端来检查用户是否喜欢它,因为用户不会看到/喜欢绝大多数帖子。理想情况下,我想保留用户已看过或喜欢的帖子的本地列表,因此我可以对照本地列表检查帖子,而不用调用后端。我不确定做到这一点的最佳/最有效和可持续的方法是什么。

或者:

我希望能够获得一个指示符,该指示符表示在我获得该帖子的其他信息的同一呼叫中,用户是否喜欢该帖子。哪种调用/数据库结构对此会有所帮助?

示例:

如果我喜欢在tumblr上发布的帖子,然后再次遇到它,则在我看到该帖子和打开“喜欢”指示符之间没有任何滞后,例如赞指示符从关闭加载到打开没有任何时间,当我看到该帖子时就已经打开。这使我觉得帖子及其“赞”状态是同时加载的。这是我想要达到的效果,我并不在乎如何,但是问题替代是我对此有两个想法。

如果有人知道该怎么做,请告诉我!

1 个答案:

答案 0 :(得分:1)

由于帖子本身就足够大,并且喜欢它的用户列表可能会过长,所以我建议按照以下结构进行操作:

每个帖子都是一个文档,其中包含带有参考用户列表的地图。每个列表本身就是一个文档。这样,您可以根据需要拥有任意数量的用户,并且仅保存帖子内容的每个文档的1MB size limit

在我的示例中,我在同一集合中拥有所有3个文档,但是您可以将用户列表与帖子分开。

示例过帐文档

enter image description here

带有喜欢该帖子的用户列表的示例文档:

enter image description here