我们正在开发一款具有聊天功能的应用,并且我们正在使用SendBird Android SDK实现这一目标。
当用户登录时,我们查询该用户的GroupChannels的SendBird,这将返回用户当前所在的频道列表。我们希望能够坚持这份名单。
目前在应用程序中,我们使用TinyDb来保存一些数据。但是,由于此错误,GroupChannels列表无法实现这一点:
无法为com.sendbird.android.BaseMessage调用no-args构造函数注册InstanceCreator
所以我们也尝试使用ORM库,Realm for Android。但是,这要求我们更改SendBird类以扩展RealObject,我们不希望修改SendBird的类。
所以我想真正的问题是,我们如何存储/保存不属于我们的对象列表(SendBird类)。
非常感谢任何帮助。
答案 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 插件可供您使用。这会自动缓存频道和消息。