Android: ParseQuery для запроса нескольких классов - PullRequest
0 голосов
/ 17 сентября 2018

Это мой первый вопрос, и надеюсь, кто-то может мне помочь. Я осмотрелся вокруг, и ничто на эту тему не помогло мне в моей ситуации, поэтому я прибег к публикации запроса о помощи.

Существует таблица («изображение»), в которой хранится информация об Image_id, пользователе, который загрузил это изображение. [Столбцы для этой таблицы: objectID (идентификатор загруженного изображения), имя пользователя (кто загрузил изображение)] (2 столбца)

Существует еще одна таблица ("image_likes"), в которой хранятся пользователи, которым понравилось изображение, и его изображение like_Status. [Столбцы для этой таблицы: image_id (идентификатор изображения, понравившегося другому пользователю), user_id (пользователь, которому понравилось изображение) и like_status этого пользователя для изображения] (3 столбца)

Я хочу выполнить объединение этих двух таблиц с помощью ParseQuery.

--- Условие для присоединения - это получить все лайки для определенного изображения .--

Но я не получаю Result в окончательном наборе Result, хотя у меня есть данные в обеих таблицах, которые удовлетворяют условию соединения?

package com.parse.starter;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

import com.parse.GetCallback;
import com.parse.ParseException;
import com.parse.ParseObject;
import com.parse.ParseQuery;
import com.parse.ParseUser;

public class testJoinActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test_join);


        ParseQuery<ParseObject> query1 = ParseQuery.getQuery("image_likes");
    query1.whereEqualTo("image_id", "PC513nAsdq");
    query1.whereEqualTo("user_id","abc");

// Запрос, который принесет определенное изображение из таблицы изображений Я извлек данные, и это приносит правильный результат

        query1.getFirstInBackground(new GetCallback<ParseObject>() {
        @Override
        public void done(ParseObject object, ParseException e) {
            if (e == null) {
                Log.i("UserName is: ", object.getString("user_id"));
            } else {
                Log.i("UserName is: ", "error");
            }

        }
    });

// Я использую приведенный выше запрос и пытаюсь получить лайки для изображения, полученного в запросе выше

    ParseQuery<ParseObject> parseQuery = new ParseQuery("image");
    parseQuery.whereMatchesKeyInQuery("objectId", "image_id", query1);

    parseQuery.getFirstInBackground(new GetCallback() {
        @Override
        public void done(ParseObject object, ParseException e) {
            if (e == null) {
                Log.i("UserName is: ", object.getString("username"));
            } else {
                Log.i("UserName is: ", "error");
            }

        }

// Это здесь с сообщением, что нет результата для вышеуказанного запроса ??

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



            }
        });
    }
}

enter image description here

Данные для таблицы изображений: enter image description here

Данные для Image_likes Table enter image description here

...