根据来自 Google 的 Yigit Boyar 的回应,Live Data 并不是聊天应用程序的最佳用例,因为如果它们同时出现,它可能会丢失显示某些项目。他建议使用新的 Google 分页库。我一直在为我的收件箱(所有向用户发送消息的人)和内部聊天(消息本身)使用 ItemKeyedDataSource。问题如下:
1-从聊天中,当用户向下滚动时,用户检索旧消息,这意味着这些消息的插入应该在适配器的位置0,而不是像分页库那样按顺序插入。如何将插入项目的位置交替替换为新消息的顺序,以及旧消息的位置 0?
2-从收件箱(向用户发送消息的人),我在这里再次使用 ItemKeyedDataSource,问题是我想维护存储库中的多文档侦听器(我正在使用 Firebase Firestore),所以我可以检测到每次新人与用户交谈时。问题是callback.onResult
只调用一次,当 Firebase 发送另一个用户时失败。如何维护可更新列表?