Как получить результаты нескольких запросов? - PullRequest
0 голосов
/ 02 мая 2019

Я делаю приложение для социальных сетей. Когда я следую за людьми, я сохраняю объект «Следовать за сервером» следующим образом:

ParseObject follow = new ParseObject("Follow");                       
followquery.put("owner",ParseUser.getCurrentUser());
followquery.put("who",otherUser);

Но я хочу получить пост следующих людей. Примерно так:

ParseQuery followingsQuery = new ParseQuery("Follow");
//get people i follow
followings.whereEqualTo("owner",ParseUser.getCurrentUser());

ParseQuery getpost = new ParseQuery("Post");
//get posts that shared by a person that i follow
getpost.whereEqualTo("user",followingsQuery);
getpost.findInBackground(new FindCallback() {
    @Override
    public void done(List objects, ParseException e) {

    }

    @Override
    public void done(Object o, Throwable throwable) {

    }
});

Я хочу что-то вроде этого, как мне этого добиться?

1 Ответ

0 голосов
/ 03 мая 2019

Похоже, вы хотите whereMatchesQuery. Используя приведенный ниже случай, в вашем случае ваши внутренние запросы будут вашими подписчиками, а ваши запросы - сообщениями.

https://docs.parseplatform.org/android/guide/#relational-queries

Выписка из документов

Если вы хотите получить объекты, где поле содержит ParseObject который соответствует другому запросу, вы можете использовать whereMatchesQuery. В Для того, чтобы найти комментарии к постам, содержащим изображения, вы можете сделать:

ParseQuery<ParseObject> innerQuery = ParseQuery.getQuery("Post");
innerQuery.whereExists("image");
ParseQuery<ParseObject> query = ParseQuery.getQuery("Comment");
query.whereMatchesQuery("post", innerQuery);
query.findInBackground(new FindCallback<ParseObject>() {
  public void done(List<ParseObject> commentList, ParseException e) {
    // comments now contains the comments for posts with images.
  }
});
...