嗨,我想知道为什么这段代码不起作用。我正在尝试查询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是一个字段,因为我无法在方法中返回它...
答案 0 :(得分:15)
Parse将用户对象与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.
}
}
});
答案 1 :(得分:1)
如果您想获得当前用户,这可能会有所帮助;
String currentUser = ParseUser.getCurrentUser().getUsername();