使用Firebase在Android上收到新消息时,如何更新我的聊天窗口?

时间:2019-01-24 20:55:03

标签: android firebase

我正在开发一个具有用户之间聊天功能的Android应用,我想在收到新消息时更新聊天。

我已经可以使用FirebaseMessagingService类接收消息,但是,我不知道如何更新聊天活动。我遇到的问题是我希望它在收到消息时更新聊天活动,但我不知道如何检查聊天活动是否正在运行。

如何检查聊天活动是否正在运行,然后进行更新?

谢谢。

1 个答案:

答案 0 :(得分:0)

基本上,我的想法是分层的:

  1. Service层将负责提取消息,然后处理它们,在这种情况下,可能会插入到持久层中。
  2. Persistence层将负责以有组织的方式(通过对话或其他过滤器)保存所有历史消息
  3. ViewModel层将处理从Persistence层获取消息并将其发送到UI进行显示
  4. UI层将从ViewModel层接收“更新”,并相应地进行更新。

现在,要完成您想要的实时行为,您需要研究一些我将在此处链接的Google的新架构组件:

ViewModel-促进MVVM架构(逻辑上的良好分离)并在生命周期更改中保持不变。在您的ViewModel层中使用(duh!)。

Room-由Google团队编写的简单易用的SQLite包装器。这将在您的Persistence层中使用。

LiveData-可观察的数据对象包装器,基本上在基础数据发生任何变化时,LiveData都会通知其观察者,以便它可以对新数据进行操作。这将为您提供所需的实时方面。而且,Room与LiveData完全兼容,因此,只要您的数据库发生更改,您就可以立即采取行动。

Room / MVVM / ViewModel / LiveData示例的网上有很多很好的示例,所以请检查一下以开始使用!