Firebase实时数据库,ListAdapter,DiffUtil和ViewModel

问题描述 投票:-2回答:1

我正在尝试使用Recycler View创建列表视图并显示列表。假设我要显示的内容就像一个典型的聊天屏幕-图片,消息,发件人姓名等。

因此所有这些数据都存储在Firebase实时数据库中。我也使用ViewModel,并希望使用DiffUtil来提高效率-因为可以删除,编辑,加注星标,添加新消息等。由于DiffUtil,我使用的是ListAdapter

我面临的问题是ListAdapter需要List,而我使用ChildEventListener

[现在如何使用LiveData观察Firebase的更改,然后更新列表,以便我可以返回DiffUtil?因此,如果我添加一条新消息,我希望将其添加到我的RecyclerView中,并且我想使用DiffUtil进行此操作,因为列表也可以更新。

[通过研究我发现,我可能需要为此目的使用Room并观察更改的查询-因此请观察getAllMessages()方法之类的东西,该方法将返回完整列表,然后我可以使用它来传递进入我的DiffUtil。对我来说,这听起来像是一个过大的杀伤力-Room的实现。

关于如何实现需求的任何指示或建议?

这是我的数据库的结构:enter image description here

firebase android-recyclerview android-livedata android-diffutils android-listadapter
1个回答
1
投票

如果您敢于开始为应用编程,那么您将无法与Room很快相处。如果您采取此步骤,SQL知识也是必要的...所以不要害羞,只是敢于这样做

GGK

© www.soinside.com 2019 - 2024. All rights reserved.