【问题标题】:Powerful and cheap array algorithms强大而廉价的数组算法
【发布时间】:2021-08-05 10:19:07
【问题描述】:

这就是文本消息通常存储在 Firebase 实时数据库中的方式

我不喜欢这样的想法,即每次有人加入群聊时,他们都需要下载整个例如 20000 条历史短信。自然,用户不会一直滑动到第一条消息。但是,在 firebase 实时数据库中,将所有消息存储在给定的父节点下将导致用户查询(加入群聊)时下载所有消息。

一种可能的效率解决方案:

添加存储旧文本消息的第二个父节点。例如,最新的 500 条短信保存在主消息父节点下,其余 19500 条旧短信保存在不同的父节点上。但是,旧文本消息的父节点也需要使用较新的旧文本消息进行更新。因此,我们需要下载所有 19500 条旧短信。

也许理想的情况是创建最多 N 个父节点,每个父节点存储 300 条文本消息的数据包。但是,过度创建父节点会有什么后果?

对于此类问题,推荐哪些效率解决方案?是否有一些我忘记或不知道的技术?

【问题讨论】:

  • 使用 Firebase 分页。

标签: swift firebase firebase-realtime-database


【解决方案1】:

只需按日期降序对列表进行排序,并限制为最后 N 条消息。或保存“反向”日期并对其进行排序。你可以阅读更多关于它的信息here

【讨论】:

    猜你喜欢
    • 2018-03-24
    • 2010-09-08
    • 2017-07-20
    • 1970-01-01
    • 2014-04-11
    • 2010-09-12
    • 1970-01-01
    • 2016-02-07
    • 1970-01-01
    相关资源
    最近更新 更多