I'm doing parse query to get data but new query parameter overrides old one.
In my app user can block other users. When its done I write a "Block" object to database like this
I block other user:
ParseObject block = new ParseObject("Block");
block.put("owner",ParseUser.getCurrentUser());
block.put("who",otherUser);
when I get data I use this query.
//I blocked him. dont sow me his data.
ParseQuery<ParseObject> benblock= new ParseQuery<ParseObject>("Block");
benblock.whereEqualTo("owner", ParseUser.getCurrentUser());
//He blocked me dont show me his data.
ParseQuery<ParseObject> oblock = new ParseQuery<ParseObject>("Block");
oblock.whereEqualTo("who",ParseUser.getCurrentUser());
query.whereDoesNotMatchKeyInQuery("user","owner",oblock); //This line doesn't work
query.whereDoesNotMatchKeyInQuery("user","who",benblock); //But this line does.
But when i retrieve data first query option
query.whereDoesNotMatchKeyInQuery("user","owner",oblock);
doesnt work only last one
query.whereDoesNotMatchKeyInQuery("user","who",benblock);
works. How can I fix this.
I solved my issue by doing this.
According to this(https://github.com/parse-community/Parse-SDK-Android/issues/211#issuecomment-150047052) Parse query override whereDoesNotMatchKeyInQuery only for the same key. Which meand I can use that parameter twice in a same query but not same key. And I just created same value with different key.
Previous my object was like this
ParseObject object = new ParseObject("DataClass");
object.put("post",post);
object.put("user",user);
Now It looks like this:
ParseObject object = new ParseObject("DataClass");
object.put("post",post);
object.put("user",user);
object.put("user2",user);//same user with the above one
And I do query like this:
ParseQuery<ParseObject> benblock= new ParseQuery<ParseObject>("Block");
benblock.whereEqualTo("owner", ParseUser.getCurrentUser());
ParseQuery<ParseObject> oblock = new ParseQuery<ParseObject>("Block");
oblock.whereEqualTo("who",ParseUser.getCurrentUser());
hashtag.whereDoesNotMatchKeyInQuery("user","owner",oblock);
hashtag.whereDoesNotMatchKeyInQuery("user2","who",benblock);