4

嗨,我想知道为什么这段代码不起作用。我正在尝试查询 ParseUser 的用户名字段以查找某个用户,但它一直说找不到它。

private void findUserName(String user) {
        // query the User database to find the passed in user
        ParseQuery query = ParseUser.getQuery();
        query.whereEqualTo("username", user);
        query.findInBackground(new FindCallback() {
            @Override
            public void done(List<ParseObject> objects, ParseException e) {
                foundUser = (objects.size() != 0);
            }
        });
    }

这是我调用它的方法

if (!foundUser) {
    errorMessage.setText("Invalid user name");
}

foundUser 是一个字段,因为我无法在方法中返回它...

4

2 回答 2

15

Parse 将 User 对象与 Parse 对象分开处理。您应该使用List<ParseUser>而不是List<ParseObject>. Parse Android 指南提供了一个示例https://parse.com/docs/android_guide#users-querying。这是带有 where 子句的 Parse 示例。

ParseQuery<ParseUser> query = ParseUser.getQuery();
query.whereEqualTo("username", user);
query.findInBackground(new FindCallback<ParseUser>() {
  public void done(List<ParseUser> objects, ParseException e) {
    if (e == null) {
        // The query was successful.
    } else {
        // Something went wrong.
    }
  }
});
于 2013-09-15T04:41:39.987 回答
1

如果您想获得当前用户,这可能会有所帮助;

String currentUser = ParseUser.getCurrentUser().getUsername();
于 2014-05-15T00:49:49.150 回答