gpt4 book ai didi

Firebase Firestore,查询用户好友的帖子

转载 作者:行者123 更新时间:2023-12-01 11:17:15 25 4
gpt4 key购买 nike

我正在寻找使用 Firebase 创建社交媒体提要。我的数据结构如下:

users: {
uid: {
... // details
}
}

friends: {
uid: {
friends: { // sub collection
fuid: {
... // details
}
}
}
}`

posts: {
postId: {
postedBy: uid
... // details
}
}

现在我试图从用户的所有 friend 那里获取帖子,将其限制为最近的 10 个帖子,然后创建一个滚动指令来查询下一组 10 个帖子,以便用户不必查询和加载在页面加载时为 friend 发布 ^N ^N。但我不太确定如何以这种有效的方式为用户的 friend 和他们的帖子查询 firebase。

我有滚动指令工作,取自 Jeff Delaney's Infinite Scrolling Lesson on AngularFirebase.com.但它只处理整个帖子(教程中的船)集合,而没有在该集合内有选择地查询(以检查用户是否是 friend )。

我能想到的唯一解决方案是查询用户的所有 friend 帖子,将其存储在一个数组中,然后根据加载的最后一批帖子将结果块加载到 DOM 中。如果用户有 100 个 friend ,每个 friend 有 100 个帖子,那么从长远来看,这似乎是非常低效的。

最佳答案

如果我猜对了,您是在为用户好友列表中的每个用户复制帖子,对吗?如果您的应用程序升级,我认为这不是一个好主意……此时,100k 文档写入的成本为 0.18 美元,因此:

假设您的应用程序用户有 1000 个 friend 。当他发布任何内容时,您正在对数据库进行 1000 次写入。假设您有 1000 个像他这样的活跃用户。您现在刚刚进行了 1.000.000 次写入并支付了 1.80 美元。

现在更糟糕的是:您可能在每个帖子上都有用户 的重复字段。显示名称 和一个 profileImageUrl .想象一下,这个用户在他的历史中有 500 个帖子,并且刚刚更改了他的个人资料图片。您必须为他的 1000 个 friend 的每个提要上的每个帖子更新一个字段,对吗?您将进行 1000 * 500 = 500.000 次写入仅用于更新 profileImageUrl!如果用户不喜欢这张照片?他尝试了 3 张新照片,现在在 10 分钟内您已经在数据库中写入了 2.000.000 次。这意味着您需要支付 3.60 美元。这可能看起来并不过分,但请注意,我们是在同一时间讨论 1 个单个用户。 1000 名用户在同一天更改个人资料图片 4 次,您需要支付 3,600.00 美元。
看看这篇文章:https://proandroiddev.com/working-with-firestore-building-a-simple-database-model-79a5ce2692cb#7709

关于Firebase Firestore,查询用户好友的帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49163379/

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