Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 正在更新parse.com中的现有记录,但未对其进行复制_Android_Parse Platform - Fatal编程技术网

Android 正在更新parse.com中的现有记录,但未对其进行复制

Android 正在更新parse.com中的现有记录,但未对其进行复制,android,parse-platform,Android,Parse Platform,我正在parse.com演示中工作,我想从parse.com中的表更新一个现有条目。每次它都会重复输入。我试过下面的内容 ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("MQOD"); // query.orderByDescending("createdAt"); query.whereEqualTo("DeviceId", android_id);

我正在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:::::::::::::::::::::");
    }
}
ParseQuery查询=新的ParseQuery(“MQOD”);
//query.orderByDescending(“createdAt”);
query.whereEqualTo(“设备id”,安卓id);
//query.toString();
System.out.println(“”:查询:
+查询);
试一试{
ob=query.find();
}捕获(com.parse.ParseException e1){
//TODO自动生成的捕捉块
e1.printStackTrace();
}
testObject.put(“DeviceId”,android);
testObject.put(“InstallationDate”,subscriptionDate);
testObject.put(“订阅”、“完成”);
testObject.put(“NextSubscription”,upGradeDate);
试一试{
testObject.save();
}catch(com.parse.parsee){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}否则{
//购买错误。。。!!
System.out.println(“:::::::::::::购买失败:::::::::”;
}
}

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

否则,您必须将您的
设备ID
设置为唯一字段,并且为了使其成为可能,您必须在“beforeSave”解析触发器中检查新的传入设备ID,并检查元素是否已经存在(另请参见此:)

因此,现在您每次都获得一个双副本是正常的,因为它被视为插入而不是更新(因为您没有指定
objectId


希望能有所帮助

谢谢你,卢卡……你救了我……)