2014-04-18 65 views
2

用戶,Parse.Installation beforeSave沒有被調用

我試圖將currentUser設置爲安裝對象。我遵循AnyPic項目的代碼邏輯,但beforeSave方法只在應用程序重新啓動時才被調用。所以如果有人安裝了應用程序(ofc atm,他沒有通過驗證),那麼CC中的request.user就是null。

所以我想我打電話 [[PFInstallation currentInstallation] saveInBackground]; 當用戶註冊/登錄成功。但不幸的是beforeSave沒有被調用。

我知道我可以將其設置也客戶端,但我想阻止它的未來。

CC安裝beforeSave

Parse.Cloud.beforeSave(Parse.Installation, function(request, response) { 
    Parse.Cloud.useMasterKey(); 
    console.log("user"+request.user); 
    if (request.user) { 
      request.object.set('user', request.user); 
     } else { 
     request.object.unset('user'); 
    } 
    response.success(); 
}); 

調用iOS上

[[PFInstallation currentInstallation] saveInBackground]; 

回答

0

我認爲當你調用saveInBackground它甚至不要求保存對象,因爲沒有變化安裝更新制作。

相反,在客戶端,我設置的用戶或取消,如果用戶沒有那麼saveInBackground登錄。在CloudCode中,我使用beforeSave來覆蓋客戶端的請求參數。

因此,只需在調用saveInBackground之前在[PFInstallation currentInstallation]中進行更改即可。