私はBack4App(Parse)を使ってアプリケーションを構築しています。Back4Appからデータを取得する(Parse)
私は2つのテーブルポストとメディアを持っています。 post_idに対応するメディア(単一または複数)をフェッチする必要があります。
私は次のアプローチを使用しています: まず、Postテーブルからすべての投稿を取り出し、ArrayListに保存しました。 その後、forループを使用して、ArrayListから特定のpost_idを取り出し、そのpost_idのメディアを見つけるためにmedia queryに送ります。
しかし、私の問題は、クエリが非同期であることです。そのため、forループがクエリより先に実行され、クエリの結果が後で取得されるためです。 forループは、ArrayListのサイズまでクエリより先に実行されています。どうすればこの問題を解決できますか?すべてのヘルプを深く理解されるであろう
for (int i = 0; i < listUserPosts.size(); i++) {
String postId = listUserPosts.get(i).getPostId();
ParseQuery<ParseObject> query = ParseQuery.getQuery("Media");
query.whereEqualTo("post_id", postId);
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> objects, ParseException e) {
if (objects.size() > 0) {
for (int j = 0; j < objects.size(); j++)
{
ParseObject parseObject = objects.get(j);
//fetching data from parseObject
}
}
}
});
:
私は、次のアプローチを使用しています。