使用Firebase

时间:2016-04-25 17:13:30

标签: android notifications firebase

我使用Firebase创建了一个聊天应用。我选择使用本地构建的通知来通知用户消息。

目前在onChildAdded()方法中(在我分叉的FirebaseArray类中),系统的工作方式如下:

if (isUserInChatScreen == false) {
      //build notification         
}

系统工作正常(在android切断连接之前),但是,因为用户的帐户必须监听几个不同聊天节点的更改,我相信这不是一个可扩展的实现,因为所需的监听器数量可能等于用户拥有的联系数量 - 可能有数百个。

我通过这样的聊天路径解决了这个问题:specificUser/chats/specificChatID/。每个用户都在其他用户的相应specialChatID位置上写入,因此,对于每个打开的聊天,都有2个节点。 userA将其消息写入userB的specificChatID节点,以及userB将其消息写入userA的specificChatID节点的节点。

由于Firebase的带宽和存储限制,每个用户的specificChatID节点仅存储其他用户的消息是有意义的,因此,单个会话的消息在userA和userB各自的specificChatID节点之间分配。

问题是:为每个用户查看两组消息,发件人的消息必须存储在本地,以避免每次聊天都有两个侦听器。我认为最好将消息存储在快照中,这样我就可以将其与其他传入消息合并,并利用Fireabase的离线存储功能。是否可以离线写入快照?是否有更好的方法来获得本地构建的通知,以便为每个用户提供大量的联系人?

提前致谢

0 个答案:

没有答案