2016-03-06 51 views
0

我有兩個用戶訪問同一個對象。如果userA在沒有首先獲取對象以刷新其版本時保存,那麼userB已成功保存的數據將被覆蓋。有什麼方法(也許是雲代碼?)訪問和更新一個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(); 
    }); 
    } 
}); 
相關問題