我正在做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:::::::::::::::::::::");
}
}
从您的代码来看,您似乎没有使用标准字段id objectID
(这是所有Parse类表中使用的官方id字段),而是使用DeviceId
(我想这是您的自定义字段)。
否则,您必须将DeviceId
设置为唯一字段,并且为了使其成为可能,您必须在"beforeSave"解析触发器中检查新传入的DeviceId,因此检查元素是否已经存在(另请参阅:https://www.parse.com/questions/unique-fields--2)
所以,现在每次都获得一个duplicate是正常的,因为它被认为是Insert而不是Update(因为你没有指定objectId
)
希望它能帮助