我正在研究parse.com演示,我想从parse.com中的表更新现有条目。每次进行重复输入。我已经尝试了下面的内容。
ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("MQOD");
// query.orderByDescending("createdAt");
query.whereEqualTo("DeviceId", android_id);
// query.toString();
System.out.println("::::::::::::::::::QUERY:::::::::::::::"
+ query);
try {
ob = query.find();
} catch (com.parse.ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
testObject.put("DeviceId", android_id);
testObject.put("InstallationDate", subscriptionDate);
testObject.put("Subscription", "Done");
testObject.put("NextSubscription", upGradeDate);
try {
testObject.save();
} catch (com.parse.ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
// Purchase error...!!
System.out.println("::::::::::::::::::::::::Purchase consumehas failed:::::::::::::::::::::");
}
}
答案 0 :(得分:2)
从你的代码中看来你似乎没有使用标准字段id objectID
(这是所有Parse类表中使用的官方id字段),而是DeviceId
(我想它是你的自定义字段)。
否则,您必须将DeviceId
作为唯一字段,并且为了使其成为可能,您必须在&#34; beforeSave&#34;中检查新传入的DeviceId。解析触发器,因此检查元素是否已存在(另请参阅:https://www.parse.com/questions/unique-fields--2)
所以,现在每次都获得dubplicate是正常的,因为它被认为是Insert而不是Update(因为你没有指定objectId
)
希望有所帮助