更新parse.com中的现有记录,使其无法复制

时间:2014-09-12 12:39:34

标签: android parse-platform

我正在研究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:::::::::::::::::::::");
    }
}

1 个答案:

答案 0 :(得分:2)

从你的代码中看来你似乎没有使用标准字段id objectID(这是所有Parse类表中使用的官方id字段),而是DeviceId(我想它是你的自定义字段)。

否则,您必须将DeviceId作为唯一字段,并且为了使其成为可能,您必须在&#34; beforeSave&#34;中检查新传入的DeviceId。解析触发器,因此检查元素是否已存在(另请参阅:https://www.parse.com/questions/unique-fields--2

所以,现在每次都获得dubplicate是正常的,因为它被认为是Insert而不是Update(因为你没有指定objectId

希望有所帮助