具有多个参数的 Quickblox getUsersByFilter

Quickblox getUsersByFilter with multiple parameters

如何在QBUsers Request中进行多重过滤?例如,现在我请求登录等于 9634 的用户。

public void getUsers(){
    QBPagedRequestBuilder pagedRequestBuilder = new QBPagedRequestBuilder();
    pagedRequestBuilder.setPage(1);
    pagedRequestBuilder.setPerPage(100);


    ArrayList<String> userId = new ArrayList();
    userId.add("9634");
    QBUsers.getUsersByFilter(userId, "string login eq ", pagedRequestBuilder, new QBEntityCallback<ArrayList<QBUser>>() {
        @Override
        public void onSuccess(ArrayList<QBUser> users, Bundle bundle) {
            for (int i = users.size() - 1; i >= 0; --i) {
                QBUser user = new QBUser();
                user.setLogin(users.get(i).getLogin());
                user.setId(users.get(i).getId());
                user.setCustomData(users.get(i).getCustomData());
                userslist.add(user);
                adapter.notifyDataSetChanged();
            }
        }

        @Override
        public void onError(QBResponseException e) {

        }
    });

}

我应该更改什么才能基于多个过滤器发出请求?谢谢

好的,在阅读 QuickBlox 文档后,我发现在查询用户时可以只使用一个过滤器,而在查询 CustomObjects 时可以使用多个过滤器。因此,正如我建议的那样,通过自定义参数过滤用户的唯一方法是接收 QBUsers 数组并手动过滤它。

private void getUsers(int page, final String... params){
    QBPagedRequestBuilder pagedRequestBuilder = new QBPagedRequestBuilder();
    pagedRequestBuilder.setPage(page);
    pagedRequestBuilder.setPerPage(100);


    ArrayList<Integer> userId = new ArrayList();
    userId.add(8776861);
    QBUsers.getUsersByFilter(userId, "number id ne ", pagedRequestBuilder, new QBEntityCallback<ArrayList<QBUser>>() {
        @Override
        public void onSuccess(ArrayList<QBUser> users, Bundle bundle) {
            for (int i = users.size() - 1; i >= 0; --i) {
                QBUser user = new QBUser();
                user.setLogin(users.get(i).getLogin());
                user.setId(users.get(i).getId());
                user.setCustomData(users.get(i).getCustomData());
                if (Utils.userdataint(users.get(i).getCustomData(),"age")>9&&
                        Utils.userdata(users.get(i).getCustomData(),"city").contains(params[0])
                        ){
                    userslist.add(user);
                }

                adapter.notifyDataSetChanged();
            }
        }

        @Override
        public void onError(QBResponseException e) {

        }
    });}

也可以使用 getUsersByTags 来接收具有多个标签的用户,但在大多数情况下这不是答案。