1

我们正在制作一个具有一些聊天功能的应用程序,并且我们正在使用 SendBird Android SDK 来实现这一点。

当用户登录时,我们向 SendBird 查询该用户的 GroupChannels,这将返回用户当前所在频道的列表。我们希望能够保留此列表。

目前在应用程序中,我们使用 TinyDb 来持久化一些数据。但是,由于此错误,GroupChannels 列表不可能做到这一点:

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

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

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

任何帮助将不胜感激。

4

3 回答 3

1

最近添加了序列化。文档中的缓存数据部分提供了一些演示。

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

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

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

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

于 2017-03-21T08:32:45.677 回答
0

目前,SendBird 官方不支持本地数据库和序列化。
我们知道您遇到的不便,因此请寻找一些方法来减轻它。
我会及时通知你这个问题。

于 2016-10-05T10:51:00.003 回答
0

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

于 2021-01-19T06:19:39.133 回答