2016-03-06 6 views
0

У меня есть два пользователя, обращающихся к одному и тому же объекту. Если userA сохраняет без предварительной выборки объекта для обновления своей версии, данные, которые пользователь уже успешно сохранил, будут перезаписаны. Есть ли способ (возможно, облачный код?) Для доступа и обновления одного и только одного значения данных для PFObject?Как сохранить одно значение объекта Parse без перезаписи всего объекта?

Я думал о том, чтобы вытащить спасение в облако, обновив объект, когда он туда доберется, обновив значение в облаке, а затем сохранит его. Однако это боль и все же не без его недостатков.

ответ

0

Это кажется достаточно простым, но для меня было сложнее, чем следовало бы. Интуитивно, вы должны иметь возможность отфильтровать поля, которые вы не хотите, в beforeSave. Действительно, это был совет, приведенный в нескольких сообщениях на Parse.com. По моему опыту, на самом деле это будет рассматривать фильтрацию как удаление.

Моя цель была немного иной - я пытался отфильтровать несколько полей и не только сохранить несколько полей, но и перевести их в контекст, вы можете попробовать выполнить запрос к существующей совпадающей записи и переопределить новый объект. Вы не можете отменить через response.failure(), и я не знаю, что произойдет, если вы немедленно сохраните существующую запись с интересующей областью и исключите свойство request.object - вы можете экспериментировать самостоятельно с этим :

Parse.Cloud.beforeSave("Foo", function(request, response) { 

    // check for master key if client is not end user etc (and option you may not need) 
    if (!request.master) { 

    var query = new Parse.Query("Foo"); 
    query.get(request.object.id).then(function(existing) { 
     exiting.set("some_field", request.object.get("some_field")); 
     request.object = exiting; // haven't tried this, otherwise, set all fields from existing to new 
     response.success(); 
    }, function(error) { 
     response.success(); 
    }); 
    } 
}); 
Смежные вопросы