您好我正在尝试使用此设备的objectId
将当前设备的位置更新到解析数据库中。
ParseQuery innerQuery = new ParseQuery("_Installation");
innerQuery.whereEqualTo("objectId", ParseInstallation.getCurrentInstallation());//current phone
ParseQuery<PhoneFinder> query = ParseQuery.getQuery(PhoneFinder.class);
query.whereMatchesQuery("identification", innerQuery);
query.findInBackground(new FindCallback<PhoneFinder>() {
@Override
public void done(List<PhoneFinder> list, ParseException e) {
for (PhoneFinder loc : list)
{
loc.setLocation(geoPoint);
loc.saveInBackground();
}
}
});
如果我明确使用objectId
则可以正常工作。
有什么建议吗?
答案 0 :(得分:0)
您还没有说出您发布的代码有什么问题(也就是说,它确实出错了),但我猜不到innerQuery
没有返回任何行。如果是这种情况,API文档中的这些信息可能有所帮助:
注意:我们只允许以下类型的安装查询:
query.get(objectId)
query.whereEqualTo("installationId", value)
query.whereMatchesKeyInQuery("installationId", keyInQuery, query)
whereEqualTo("objectId",value)
不在该列表中,因此这可能是它无法正常工作的原因。此外,ParseInstallation.getQuery
是获取用于安装的查询的最佳方式。