正在更新parse.com中的现有记录,但无法进行重复操作



我正在做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

希望它能帮助

最新更新