我正在尝试使用Recycler View
创建列表视图并显示列表。假设我要显示的内容就像一个典型的聊天屏幕-图片,消息,发件人姓名等。
因此所有这些数据都存储在Firebase实时数据库中。我也使用ViewModel
,并希望使用DiffUtil
来提高效率-因为可以删除,编辑,加注星标,添加新消息等。由于DiffUtil
,我使用的是ListAdapter
。
我面临的问题是ListAdapter
需要List
,而我使用ChildEventListener
。
[现在如何使用LiveData
观察Firebase的更改,然后更新列表,以便我可以返回DiffUtil
?因此,如果我添加一条新消息,我希望将其添加到我的RecyclerView
中,并且我想使用DiffUtil
进行此操作,因为列表也可以更新。
[通过研究我发现,我可能需要为此目的使用Room
并观察更改的查询-因此请观察getAllMessages()
方法之类的东西,该方法将返回完整列表,然后我可以使用它来传递进入我的DiffUtil
。对我来说,这听起来像是一个过大的杀伤力-Room
的实现。
关于如何实现需求的任何指示或建议?
如果您敢于开始为应用编程,那么您将无法与Room很快相处。如果您采取此步骤,SQL知识也是必要的...所以不要害羞,只是敢于这样做
GGK