Swift 查询Firebase Firestore帖子的最有效方法
我目前正在创建一种社交媒体应用程序,与任何社交媒体应用程序一样,显示来自朋友的某种信息几乎至关重要 我尝试过各种方式向用户显示他们的朋友发布的帖子,但速度可能很慢,我怀疑这是最有效的方式 起初,我的数据库结构如下: 用户->(uid)->朋友(uid数组) 帖子(帖子id的数组) 其他信息 帖子->(帖子id)->图片链接 其他信息 使用此设置,我: 1.我获取了当前登录用户的uid,并获得了属于我的文档 在“用户”下发送给该用户Swift 查询Firebase Firestore帖子的最有效方法,swift,firebase,google-cloud-firestore,social-media,network-efficiency,Swift,Firebase,Google Cloud Firestore,Social Media,Network Efficiency,我目前正在创建一种社交媒体应用程序,与任何社交媒体应用程序一样,显示来自朋友的某种信息几乎至关重要 我尝试过各种方式向用户显示他们的朋友发布的帖子,但速度可能很慢,我怀疑这是最有效的方式 起初,我的数据库结构如下: 用户->(uid)->朋友(uid数组) 帖子(帖子id的数组) 其他信息 帖子->(帖子id)->图片链接 其他信息 使用此设置,我: 1.我获取了当前登录用户的uid,并获得了属于我的文档 在“用户”下发送给该用户 然后,我将用户的好友列表作为一个数组进行循环 对于每个uid,我
还有其他想法吗?如果我正确理解了您的问题,那么您是在尝试促进
用户
和帖子
之间的连接(即,您希望用户
可以按时间或相关性排序的所有帖子
)。我建议创建一个Firebase函数,当用户的一个朋友创建帖子时,该函数会在用户的“提要”集合下写入一条记录。该记录将包含对该职位的回复以及对该职位进行排名/排序的必要信息。然后,您可以只进行两个查询(第一个查询速度相对较快且可分页),以便为用户提供提要。如果用户获得了一个新朋友,那么只需使用另一个Firebase功能从该朋友那里获取一些最近(可能不是从一开始)的帖子。唯一的问题是,它可能会在功能服务器上接受多个请求,例如某人有100个追随者,您需要查询每个朋友,然后输入一个引用,就像我说的,您正在尝试执行一个连接(使用Firestore是不可能的);因此,无论采用哪种方式,它都无法很好地扩展。因此,您必须回答以下问题:我是否希望用户看到昂贵的部件,以及我是否希望对需要完成的工作采取主动。在当前的解决方案中,每次阅读都必须重复昂贵的部分。使用此解决方案,您只需执行一次,用户就不会看到任何昂贵的执行。好的,谢谢您的建议,我将尝试一下。对不起,我刚刚注意到此解决方案存在一个问题。这并不是说我想让自己听起来很自大,我知道我的应用程序很可能永远不会有一天会接触到数百万用户。然而,在不太可能的情况下,如果一个人拥有100万“粉丝”,那么他写一篇文章的效率不会很低,这就意味着你必须做100万次。是的,这是昂贵的,但无论如何,你尝试允许这样做是昂贵的。以下是一篇关于Facebook和Twitter如何使用扇出读写的文章:。希望有帮助。还有其他解决办法吗?