gpt4 book ai didi

ios - 应用程序中收藏夹功能的最佳实践

转载 作者:行者123 更新时间:2023-11-29 05:08:39 25 4
gpt4 key购买 nike

我有一个应用程序,与当今的许多应用程序一样,允许用户浏览帖子并收藏它们,以便将它们存储在列表中以供将来访问。目前我的堆栈是用于后端的 Firebase 数据库,以及用于客户端的 Swift iOS,但这更多的是关于一般最佳实践的问题。

在我的应用程序中,用户可以在很多地方查看帖子,并且所有位置都会显示他们是否已经收藏该帖子。我现在实现这一目标的方法是将帖子的 UID 保存到 Firebase 中每个用户的列表中,以便用户每次在应用程序中查看帖子时都可以将其进行比较。这工作正常,但我不确定它是否可扩展,因为它需要在当前用户每次进入应用程序时获取当前用户收藏的帖子 UID 的完整列表。对于几十或数百个收藏的帖子来说,这似乎不是问题,但经过几年和数千个收藏后,我认为这可能会成为数据、内存和处理的拖累。

对于此类功能是否有更有效的最佳实践?好处是它也适用于许多其他类型的功能,例如喜欢和 friend 列表。

编辑:

这就是我目前的 Firebase 数据库的设置方式。再说一次,这个结构目前对我来说确实有效,而且我还没有遇到任何问题,但我不确定它是否可扩展地每次为当前用户获取 favoritedPostIds 的整个列表如果有更好的方法,我完全愿意重组整个数据库。

posts {
post-1-UID {
title: "post1",
text: "blah"
},
post-2-UID {
title: "post2",
text:"blahblah"
}
},
users {
user-1-UID {
name: "User1",
email: "user1@email.com"
},
user-2-UID {
name: "User2",
email: "user2@email.com"
}
},
favoritedPostIds {
user-1-UID {
post-2-UID: "2019-11-19T19:12:51.240GMT-05:00"
},
user-2-UID {
post-1-UID: "2019-10-16T19:10:57.340GMT-05:00",
post-2-UID: "2019-11-24T11:21:05.610GMT-05:00"
}
}

最佳答案

after a few years and thousands of favorites I'm thinking it might become a drag on data, memory and processing

在这种情况下,您不应将收藏夹作为用户属性进行检索,而应将其作为帖子的属性进行检索。您的后端应该以任何一种方式或什至两种方式将其存储在数据库中(作为用户的属性或帖子的属性),并且客户端只会获取当前用户是否喜欢的任何特定帖子的信息。

但是,使用 Firebase 数据库在后端实现可能会很困难(特别是如果一篇帖子被数千名用户添加到收藏夹)。因此,我建议部分存储最喜欢的数据,例如按发布日期排序的最喜欢的帖子 block ,甚至以树状结构来按帖子 ID 范围获取一小部分最喜欢的帖子 ID。这不会影响大多数用户,但某些用户可能需要等待更长的时间才能获取此信息。

关于ios - 应用程序中收藏夹功能的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59905686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com