Back4App(Parse) を使用してアプリを構築しています。
2 つのテーブル ポストとメディアがあります。post_id に対応するメディア (単一または複数) をフェッチする必要があります。
したがって、私は次のアプローチを使用しています。まず、Post テーブルからすべての投稿を取得し、ArrayList に保存しました。次に、for ループを使用して、特定の post_id を ArrayList から取得し、それをメディア クエリに送信して、その post_id のメディアを検索します。
しかし、私の問題は、クエリが非同期であるため、 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
}
}
}
});
どんな助けでも大歓迎です。