我正在使用QuickBlox SDK构建应用。我存储了用户的ID,需要使用该ID来检索用户对象。基本上我需要按ID查询用户并检索用户对象这怎么可能?
我尝试使用userWithID方法,但似乎已弃用。任何建议将不胜感激。
答案 0 :(得分:0)
您可以使用 QB.users.listUsers 从userid检索用户对象。我在这里附上了源代码。这对我有用
var userId = 18767586;
var params = {
filter: { field: 'id', param: 'in', value: [userId] },
order: { sort: 'desc', field: 'id' }
};
QB.users.listUsers(params, function(err, result){
if (err) {
console.log("errMsg ==> ", err);
} else {
_.each(result.items, function(item) {
console.log("User Object ", item.user);
console.log(item.user.full_name);
// here you can get the user
});
}
});
此解决方案来自http://qaoverflow.com/question/quickblox-filtering-custom-objects-with-javascript/
答案 1 :(得分:0)
根据QuickBlox官方文档,您发现的方法已被弃用,但您可以使用以下方法通过用户ID获取用户
official doc of QuickBlox for android
QBPagedRequestBuilder pagedRequestBuilder = new QBPagedRequestBuilder();
pagedRequestBuilder.setPage(1);
pagedRequestBuilder.setPerPage(50);
ArrayList<Integer> usersIds = new ArrayList<>();
usersIds.add(qbChatDialog.getRecipientId());//set user id(s) here
QBUsers.getUsersByIDs(usersIds, pagedRequestBuilder).performAsync(new QBEntityCallback<ArrayList<QBUser>>() {
@Override
public void onSuccess(ArrayList<QBUser> users, Bundle params) {
//here you can get User(S) detail in users arrayList
String email = users.get(0).getEmail();
}
@Override
public void onError(QBResponseException errors) {
Log.e("error" , errors.toString());
}
});