存储SendBird频道列表 - Android

时间:2016-10-04 20:48:01

标签: android realm sendbird tinydb

我们正在开发一款具有聊天功能的应用,并且我们正在使用SendBird Android SDK实现这一目标。

当用户登录时,我们查询该用户的GroupChannels的SendBird,这将返回用户当前所在的频道列表。我们希望能够坚持这份名单。

目前在应用程序中,我们使用TinyDb来保存一些数据。但是,由于此错误,GroupChannels列表无法实现这一点:

  

无法为com.sendbird.android.BaseMessage调用no-args构造函数注册InstanceCreator

所以我们也尝试使用ORM库,Realm for Android。但是,这要求我们更改SendBird类以扩展RealObject,我们不希望修改SendBird的类。

所以我想真正的问题是,我们如何存储/保存不属于我们的对象列表(SendBird类)。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

最近添加了序列化。文档中的caching data部分提供了一些演示。

基本上,您可以使用这些方法来序列化和反序列化消息和通道。

byte[] baseMessage.serialize()
BaseMessage BaseMessage.buildFromSerializedData(byte[] data)

byte[] baseChannel.serialize()
BaseChannel BaseChannel.buildFromSerializedData(byte[] data)

然后,将序列化数据存储在本地数据库(例如SQLite或Realm)中,并在收到新消息或创建新频道时更新它。

答案 1 :(得分:0)

目前,SendBird不正式支持本地数据库和序列化 我们知道您遇到的不便,因此找到一些方法来缓解它 我会告诉你这个问题。

答案 2 :(得分:0)

Sendbird 现在有 SyncManager 插件可供您使用。这会自动缓存频道和消息。