0
我有兩個用戶訪問同一個對象。如果userA在沒有首先獲取對象以刷新其版本時保存,那麼userB已成功保存的數據將被覆蓋。有什麼方法(也許是雲代碼?)訪問和更新一個PFObject的數據值嗎?如何在不覆蓋整個對象的情況下保存一個Parse對象的值?
我正在考慮將保存到雲中,刷新對象一旦到達那裏,更新雲中的值,然後將其保存回來。然而,這是一個痛苦,但並非沒有缺點。
我有兩個用戶訪問同一個對象。如果userA在沒有首先獲取對象以刷新其版本時保存,那麼userB已成功保存的數據將被覆蓋。有什麼方法(也許是雲代碼?)訪問和更新一個PFObject的數據值嗎?如何在不覆蓋整個對象的情況下保存一個Parse對象的值?
我正在考慮將保存到雲中,刷新對象一旦到達那裏,更新雲中的值,然後將其保存回來。然而,這是一個痛苦,但並非沒有缺點。
這似乎很容易,但對我來說比它應該更困難。直觀上,您應該能夠在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();
});
}
});