android解析,如何找到其他用户名?

时间:2016-01-04 13:20:11

标签: android parse-platform

ParseQuery<ParseUser> query = ParseUser.getQuery();
                query.whereEqualTo("username", "female");
                query.findInBackground(new FindCallback<ParseUser>() {
                    @Override
                    public void done(List<ParseUser> objects, com.parse.ParseException e) {
                        if (e == null) {
                            Toast.makeText(getApplicationContext(), "Username Found",
                                    Toast.LENGTH_LONG).show();
                        } else {
                            Toast.makeText(getApplicationContext(), "Username Not Found",
                                    Toast.LENGTH_LONG).show();
                        }
                    }
                });'

我对这些代码有疑问,我想搜索其他用户名,请帮帮我。 我已经编写了代码,但总是进入“找到用户名”,但在数据库中没有这样的名称。

1 个答案:

答案 0 :(得分:2)

你错了,因为在 findInBackground 回调中,你目前只检查 e 变量(如果它是否为空)而不是对象大小。如果查询从Cloud Code返回有效结果,则异常为alwasy null (在这种情况下,对象不为null且大小为0或大于);如果查询的执行引发异常/错误,则异常变量被赋值

要检查查询是否返回记录,您必须检查对象的大小(List):

ParseQuery<ParseUser> query = ParseUser.getQuery();
            query.whereEqualTo("username", "female");
            query.findInBackground(new FindCallback<ParseUser>() {
                @Override
                public void done(List<ParseUser> objects, com.parse.ParseException e) {
                    if (e == null) {
                        if (objects.size() > 0) {
                            Toast.makeText(getApplicationContext(), "Username Found",
                                Toast.LENGTH_LONG).show();
                        }
                        else {
                            Toast.makeText(getApplicationContext(), "Username Not Found",
                                Toast.LENGTH_LONG).show();
                        }
                    } else {
                        Toast.makeText(getApplicationContext(), "An error has occurred!",
                                Toast.LENGTH_LONG).show();
                    }
                }
            });

考虑将查询限制为1个结果的机会(如果您查找一个特定记录)或使用 getFirstInBackground 方法来提高查询性能。