我在 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");
然而,这个查询返回了一些非常奇怪的结果——即它忽略了附近查询的约束,并返回世界上所有位置的 Stitches。如果我从 ParseQuery.or() 中删除第一个查询,我会从附近获得正确的结果。
ParseQuery.or() 是否在 Android 上奇怪地结合了这些?任何人都可以帮忙吗?谢谢!