【发布时间】:2021-08-05 10:19:07
【问题描述】:
这就是文本消息通常存储在 Firebase 实时数据库中的方式
我不喜欢这样的想法,即每次有人加入群聊时,他们都需要下载整个例如 20000 条历史短信。自然,用户不会一直滑动到第一条消息。但是,在 firebase 实时数据库中,将所有消息存储在给定的父节点下将导致用户查询(加入群聊)时下载所有消息。
一种可能的效率解决方案:
添加存储旧文本消息的第二个父节点。例如,最新的 500 条短信保存在主消息父节点下,其余 19500 条旧短信保存在不同的父节点上。但是,旧文本消息的父节点也需要使用较新的旧文本消息进行更新。因此,我们需要下载所有 19500 条旧短信。
也许理想的情况是创建最多 N 个父节点,每个父节点存储 300 条文本消息的数据包。但是,过度创建父节点会有什么后果?
对于此类问题,推荐哪些效率解决方案?是否有一些我忘记或不知道的技术?
【问题讨论】:
-
使用 Firebase 分页。
标签: swift firebase firebase-realtime-database