私は Parse でアプリを構築しましたが、最近、ParseGeoPoints を使用して近くのオブジェクトを見つけるためのサポートを追加しました。
2 つのクエリがあります。
ParseQuery<Stitch> query = new ParseQuery<Stitch>("Stitch");
query.whereEqualTo("complete", false);
query.whereNotEqualTo("archived", ParseUser.getCurrentUser().getUsername());
query.whereEqualTo("invited", ParseUser.getCurrentUser().getUsername());
ParseQuery<Stitch> nearby = new ParseQuery<Stitch>("Stitch");
nearby.whereWithinMiles("location", app.currentLocation, 0.1);
nearby.whereExists("location");
nearby.whereEqualTo("complete", false);
nearby.whereEqualTo("allowNearby", true);
nearby.whereNotEqualTo("invited", ParseUser.getCurrentUser().getUsername());
これらをリストに追加します。
List<ParseQuery<Stitch>> queries = new ArrayList<ParseQuery<Stitch>>();
queries.add(query);
queries.add(nearby);
ParseQuery<Stitch> combined = ParseQuery.or(queries);
combined.orderByDescending("updatedAt");
combined.include("author");
ただし、このクエリは非常に奇妙な結果を返します。つまり、近くのクエリの制約を無視し、世界中のすべての場所でステッチを返します。ParseQuery.or() から最初のクエリを削除すると、近くから正しい結果が得られます。
ParseQuery.or() は Android でこれらを奇妙に組み合わせていますか? 誰でも助けることができますか?ありがとう!