2015-10-19 68 views
0

感謝串門。解析CLP/ACL造成的問題與beforeSave觸發

我有一個類,姑且稱之爲Class1的,我用它來給我的應用程序的折扣/優惠券的用戶。當用戶完成註冊過程時,我創建一個對象並將指針存儲在用戶上。

我想給這個類CLP權限,使公衆可以創造,但不能寫此對象。讓它只是我內部使用的東西。

我的問題是,班裏有幾個陣列不能未定義或其他雲功能最終會引發錯誤嘗試讀取這些值。我爲這個類設置了一個beforeSave()觸發器,並且使用了主鍵,但是這個對象沒有被保存,所以我的整個用戶在註冊結束時保存不起作用。我如何解決這個問題,同時保持我的對象安全,並確保用戶不能免費竊取我的應用程序的所有服務?

這裏是我的beforeSave觸發:

Parse.Cloud.beforeSave("Class1", function(request, response) 
{ 
    Parse.Cloud.useMasterKey(); 
    var emptyArray = []; 
    class1 = request.object; 
    if(class1.isNew()) 
    { 
     class1.set("array1", emptyArray); 
     class1.set("array2", emptyArray); 
     class1.set("array3", emptyArray); 
    } 
    response.success(); 
}); 
+0

您是否看到正在日誌中創建的對象數據?任何錯誤消息? –

+0

你能完全擺脫陣列嗎?而不是有一個存儲在用戶內的優惠券指針數組,只是有一個用戶指針與每個優惠券相關聯。作爲一般的經驗法則,我發現最好儘可能減少用戶類 – Russell

回答

0

所以我猜你不能使用萬能鑰匙覆蓋CLP/ACL的東西在beforeSave觸發...雖然這是有道理的,因爲這將完全擊敗了這一點。

但是,如果你給公衆創建訪問,可以填充任何初始數據,你就不能沒有更新訪問更新。所以,顯而易見的答案是在創建對象之前和保存之前在客戶端設置這些參數。