使用当前设备的对象ID更新解析表中的行

时间:2015-03-27 03:00:36

标签: android parse-platform

您好我正在尝试使用此设备的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则可以正常工作。 有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您还没有说出您发布的代码有什么问题(也就是说,它确实出错了),但我猜不到innerQuery没有返回任何行。如果是这种情况,API文档中的这些信息可能有所帮助:

注意:我们只允许以下类型的安装查询:

query.get(objectId)
 query.whereEqualTo("installationId", value)
 query.whereMatchesKeyInQuery("installationId", keyInQuery, query)

whereEqualTo("objectId",value)不在该列表中,因此这可能是它无法正常工作的原因。此外,ParseInstallation.getQuery是获取用于安装的查询的最佳方式。