我们正在开发一个具有聊天功能的应用程序,我们正在使用SendBird Android来实现这一点。
当用户登录时,我们查询SendBird以获取该用户的GroupChannels,这将返回用户当前所在的通道列表。我们希望能够坚持这一清单。
目前在应用程序中,我们使用TinyDb来持久化一些数据。但是,由于此错误,GroupChannels列表不可能这样做:
无法为com.sendbird.android.BaseMessage注册InstanceCreator调用no-args构造函数
因此,我们还尝试使用ORM库,用于Android的领域。然而,这要求我们更改SendBird类以扩展RealObject,并且我们不喜欢修改SendBird的类。
因此,我想真正的问题是,我们如何存储/持久化不属于我们的对象列表(SendBird类)。
任何帮助都将不胜感激。
发布于 2017-03-21 08:32:45
序列化是最近添加的。文档中的缓存数据部分提供了一些演示。
基本上,您将使用这些方法来序列化和反序列化消息和通道。
byte[] baseMessage.serialize()
BaseMessage BaseMessage.buildFromSerializedData(byte[] data)
byte[] baseChannel.serialize()
BaseChannel BaseChannel.buildFromSerializedData(byte[] data)然后,将序列化的数据存储在本地数据库(例如SQLite或领域)中,并在收到新消息或创建新通道时更新它。
发布于 2016-10-05 10:51:00
目前,SendBird不支持本地数据库和序列化。
我们知道您正在经历的不便,所以找出一些方法来减轻它。
我会随时通知你这件事的。
发布于 2021-01-19 06:19:39
Sendbird现在有了可以使用的SyncManager附加组件。这会自动缓存通道和消息。
https://stackoverflow.com/questions/39861488
复制相似问题