问题描述
我正在尝试创建两个名称相同但用户和自定义类型不同的组频道。 但是,既未创建组,也未在列出组时创建。我找不到我做错了什么。
createGroupChannelWithData(workOrderIds,false,"Ticket Id:" + jobId,"",Integer.toString(jobId),"Private_Ticket");
private void createGroupChannelWithData(List<String> userIds,boolean distinct,String name,String coverImage,String data,String ticketType) {
GroupChannel.createChannelWithUserIds(userIds,distinct,name,coverImage,data,ticketType,new GroupChannel.GroupChannelCreateHandler() {
@Override
public void onResult(GroupChannel groupChannel,SendBirdException e) {
if (e != null) {
// Error!
return;
}
createGroupChannelWithData1(managementIds,"Ticket");
}
});
}
` private void createGroupChannelWithData1(List<String> userIds,SendBirdException e) {
if (e != null) {
// Error!
return;
}
getGroupChannelList("end");
}
});
}
但是当我列出频道时,我只有一个频道,自定义类型为“票证”。我需要使用自定义类型“ Private_Ticket”的频道。 每次,我都会创建两个渠道,并且需要两个渠道都在另一个应用程序中列出。 我获取频道列表的代码:
GroupChannelListQuery channelListQuery = GroupChannel.createMyGroupChannelListQuery();
channelListQuery.setIncludeEmpty(true);
channelListQuery.setorder(GroupChannelListQuery.Order.LATEST_LAST_MESSAGE);
// CHRONOLOGICAL,LATEST_LAST_MESSAGE,CHANNEL_NAME_ALPHABETICAL,and MetaDATA_VALUE_ALPHABETICAL
channelListQuery.setLimit(15);
channelListQuery.next(new GroupChannelListQuery.GroupChannelListQueryResultHandler() {
@Override
public void onResult(List<GroupChannel> list,SendBirdException e) {
if (e != null) { // Error.
return;
}
for (int i = 0; i < list.size(); i++) {
Log.e(" in first loop name : data : custom type >>",list.get(i).getName()+" : "+list.get(i).getData()+" : "+list.get(i).getCustomType());
}
}
});
编辑: 该问题已解决。我没有在列表中包括第二个应用程序的用户。这是问题的根本原因。谢谢。
解决方法
您有个好问题。希望我能为您提供答案。
第一步是检查您的频道是否真正被创建。您可以在Sendbird的控制台中执行此操作。
Sendbird Dashboard --> Group Channels --> See channel list
如果通道未显示在Sendbird仪表板上,则说明它们尚未创建。在这种情况下,请尝试记录创建频道时在SDK中看到的所有错误。
如果已创建通道且它们在Sendbird仪表板中可见,但未在SDK中显示,请考虑以下内容。
By default channels without any messages will not be displayed in a channel list query.
Consider these to be "empty channels"
如果您需要在频道列表查询中看到空白频道,请在channel list query中加入setIncludeEmpty(true)
参数。
GroupChannelListQuery channelListQuery = GroupChannel.createMyGroupChannelListQuery();
channelListQuery.setIncludeEmpty(true);
channelListQuery.setOrder(GroupChannelListQuery.Order.LATEST_LAST_MESSAGE);
// CHRONOLOGICAL,LATEST_LAST_MESSAGE,CHANNEL_NAME_ALPHABETICAL,and METADATA_VALUE_ALPHABETICAL
channelListQuery.setLimit(15);
channelListQuery.next(new GroupChannelListQuery.GroupChannelListQueryResultHandler() {
@Override
public void onResult(List<GroupChannel> list,SendBirdException e) {
if (e != null) { // Error.
return;
}
}
});