如何通过Amity SDK获取3位最新投票用户及投票用户查询方法
Amity社交SDK:获取投票帖用户及最新3位投票用户方案
获取投票帖的所有投票用户
Amity SDK中,投票帖的投票用户数据可通过AmityPost对象关联的投票查询接口获取,核心步骤如下:
- 先通过帖子ID或已获取的帖子实例,拿到目标投票帖的
AmityPost对象 - 调用投票用户查询接口,支持分页参数控制返回数量,默认可获取所有投票用户
代码示例(Android/Kotlin)
// 假设已获取目标投票帖的post实例 post.getVoteUsers() .sortBy("createdAt", AmitySortOrder.DESCENDING) // 可选:按投票时间排序 .build() .fetch() .subscribe({ voteUsers -> // 处理返回的投票用户列表 voteUsers.forEach { user -> println("投票用户ID: ${user.getUserId()}, 用户名: ${user.getDisplayName()}") } }, { error -> error.printStackTrace() })
代码示例(iOS/Swift)
// 假设已获取目标投票帖的post实例 post.getVoteUsers() .sort(by: "createdAt", order: .descending) .build() .fetch { result in switch result { case .success(let voteUsers): voteUsers.forEach { user in print("投票用户ID: \(user.userId), 用户名: \(user.displayName ?? "")") } case .failure(let error): print("获取投票用户失败: \(error.localizedDescription)") } }
获取3位最新投票的用户
要获取最新3位投票用户,只需在查询时添加按投票创建时间降序排序,并限制返回数量为3即可:
代码示例(Android/Kotlin)
post.getVoteUsers() .sortBy("createdAt", AmitySortOrder.DESCENDING) .limit(3) // 限制返回3条结果 .build() .fetch() .subscribe({ latestVoteUsers -> // latestVoteUsers即为最新的3位投票用户 }, { error -> // 错误处理 })
代码示例(iOS/Swift)
post.getVoteUsers() .sort(by: "createdAt", order: .descending) .limit(3) .build() .fetch { result in switch result { case .success(let latestUsers): // 处理最新3位投票用户 case .failure(let error): print("获取最新投票用户失败: \(error.localizedDescription)") } }
注意事项
- 确保使用最新版本的Amity SDK,旧版本可能缺失
getVoteUsers()或排序/分页参数支持 - 若投票用户数量较多,建议配合
skip()分页方法避免一次性加载过多数据 - 需确保当前用户拥有查看该帖子投票用户的权限(公开帖默认允许,私密帖需对应权限)
内容的提问来源于stack exchange,提问作者Johnny Future
相关产品推荐
相关产品推荐

