Reputation: 193
I am trying to get a user or users who have a certain age, from a certain city and with certain genders fro ma parse server, but this code returns all users with age= "20", city= "new york", gender= "females"
public void sendQuery() {
String ages1 = SharedPrefsActivity.n;
String cities = SharedPrefsActivity.ph;
String genders = SharedPrefsActivity.e;
ParseQuery<ParseObject> ages =ParseQuery.getQuery("UserImages");
ages.whereEqualTo("age", ages1 );
ParseQuery<ParseObject> city1 = ParseQuery.getQuery("UserImages");
city1.whereMatchesKeyInQuery("city", cities , ages);
final ParseQuery<ParseObject> gender1 = ParseQuery.getQuery("UserImages");
gender1.whereMatchesKeyInQuery("gender", genders, city1);
gender1.findInBackground(new FindCallback<ParseObject>() {
public void done(List<ParseObject> results, ParseException e) {
for (ParseObject gender : results) {
Object name = gender.get("name");
ParseFile image = (ParseFile) gender.get("ImageFile");
Usernames.add(((Object) name).toString());
imageUrls.add(((ParseFile) image).getUrl().toString());
}
}
});
}
Upvotes: 1
Views: 302
Reputation: 62686
AND is accomplished by applying multiple criteria to a single query:
ParseQuery<ParseObject> query =ParseQuery.getQuery("UserImages");
query.whereEqualTo("age", ages1 );
query.whereEqualTo("city", cities );
query.whereEqualTo("gender", genders );
query.findInBackground( ...
Upvotes: 1