我目前正在创建一种社交媒体应用程序,就像任何社交媒体应用程序一样,显示来自朋友的某种信息几乎是至关重要的。
我尝试了各种方法来向他们的朋友发布的用户显示帖子,但它可能会很慢,我怀疑这是最有效的方式。
起初我的数据库结构如下:
用户->(uid)->朋友(uid数组)帖子(帖子id数组)其他信息...
帖子->(帖子ID)-> image_url 其他信息...
使用此设置我: 1. 我获取当前登录的用户 uid 并在“用户”下获取属于该用户的文档。
然后我将用户朋友列表作为一个数组并循环遍历它们。
对于每个 uid,我再次查询“用户”并找到属于该用户的文档。
然后我在他们的“posts”数组中取了第一个“post id”,如果有的话
我拿了帖子id,在“帖子”集合中找到了对应的帖子并下载了它。
对每个用户 ID 重复步骤 3 - 5,直到没有更多帖子,或者我已经下载了 10 个。
这是我的第一种方法,但是我可以识别出几个问题,而且很可能还有几个我还没有想到的问题。
在第 2 步和第 4 步中。在这两个步骤中,我正在下载整个数组,因为 Firestore 不允许您下载数组中的某个索引。这会减慢这个过程,如果有的话
假设用户向下滚动以刷新新帖子,那么将很难加载更多帖子,因为即使我开始下载我离开的地方,也可以在那个时候添加另一个帖子,这会抛出整个系统。
我还在尝试将一个集合呼叫帖子与其中的帖子文档附加到每个用户。
还有其他想法吗?