【问题标题】:Fetch data in firebase by ranking failing?通过排名失败在firebase中获取数据?
【发布时间】:2023-03-24 12:47:02
【问题描述】:

我正在尝试在我的应用中创建一个趋势功能。

目前的做法:

我在探索时间线中的每个帖子都有一个ranking 孩子,当用户查看或喜欢时,该时间轴会在用户手机上不断更新。

ExploreTimeline
    post1
       ranking: 117117117
       timestamp: 32930.489349

在探索过程中,我会获取排名最高的 10 个帖子,当用户在滚动后到达某个点时,我会进行分页并获取下一个最高的 10 个以最后一个排名值结束

问题

如果用户在浏览时,最后一个 postRanking 的排名发生变化,那么下一个分页就会混乱(在我的测试中,它会重复许多帖子)。

我怎样才能改变我的策略来避免这个问题?或者什么是修复?

【问题讨论】:

    标签: ios swift firebase firebase-realtime-database trending


    【解决方案1】:

    如果您想实时更新排名,那么您不能实现分页,至少使用 Firebase 是因为如果发生更新,订单会变得混乱。查看 this video 解释 Firebase 自己的分页以了解原因。您最好的选择是获得前 10 个,然后如果用户继续滚动,则获得前 20 个、30 个,依此类推。这样您就可以确保您的用户获得的排名始终是正确的

    【讨论】:

    • 但这似乎效率很低,有时我可能会获取多达 100 个项目,真的没有其他办法吗?
    • 好吧,如果您希望您的排名始终正确,那么这是唯一的方法。我链接的视频谈到了这个问题。您的用户可能不会向下滚动太远而不会出现问题,因为每个请求 30-40 个文档似乎是合理的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    • 1970-01-01
    • 1970-01-01
    • 2020-04-04
    • 1970-01-01
    • 1970-01-01
    • 2018-06-16
    相关资源
    最近更新 更多