使用位置搜索 returns 内部服务器错误

Search with location returns internal server error

我在 android 上构建搜索请求时遇到问题。

   ArrayList<ParseQuery<Entity>> queriesByCriteria = new ArrayList<>();
   queriesByCriteria.add(ParseQuery.getQuery(Entity.class).whereContains("userName", criteria));
   queriesByCriteria.add(ParseQuery.getQuery(Entity.class).whereContains("locationName", criteria));
   queriesByCriteria.add(ParseQuery.getQuery(Entity.class).whereContains("descriptionBefore", criteria));
   queriesByCriteria.add(ParseQuery.getQuery(Entity.class).whereContains("descriptionAfter", criteria));

   ParseQuery<Entity> combinedQuery = ParseQuery.or(queriesByCriteria)
                            .orderByDescending("createdAt")
                            .whereEqualTo("done", true);

   float mapRadius;
   int mapUnits = preferences.getMapUnits();
   if (mapUnits == MapUnitType.MAP_UNIT_KILOMETER) {
       mapRadius = (preferences.getMapRadius());
   } else {
       mapRadius = 1.6f * (preferences.getMapRadius());
   }
   entities = combinedQuery
                            .whereWithinKilometers("location", new ParseGeoPoint(latLng.getLatitude(), latLng.getLongitude()), mapRadius)
                            .find();

所以 find() 抛出异常 "com.parse.ParseException: internal error"。

Parse SDK 版本为 1.7.1

是parse.com的bug还是我做错了什么?

是的,SDK 中的内部错误是指内部错误,不会暴露给 SDK 用户。在这种情况下,存在 find() 方法未在内部处理的边缘情况。我的建议是转到 Parse suppport page 并将其报告为错误。