Parse.Installation beforeSave没有被调用

时间:2014-04-18 10:28:34

标签: javascript ios objective-c parse-platform

用户,

我试图将currentUser设置为Installation对象。我遵循AnyPic项目的代码逻辑,但只有在应用程序启动时才会调用beforeSave方法。因此,如果某人安装了应用程序(ofc atm,他未经过身份验证),则CC中的request.user为空。

所以我以为我打电话了 [[PFInstallation currentInstallation] saveInBackground]; 当用户注册/登录成功时。但不幸的是beforeSave没有被调用。

我知道我也可以在客户端进行设置,但我希望将来可以阻止它。

CC Installations 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];

1 个答案:

答案 0 :(得分:0)

我认为当你调用saveInBackground时,它甚至都没有请求保存对象,因为没有进行任何更改。

相反,在客户端,如果用户未登录则设置用户或取消设置,然后保存为saveInBackground。在CloudCode中,我使用beforeSave来覆盖客户端的请求参数。

所以你需要做的就是在调用saveInBackground之前在[PFInstallation currentInstallation]中进行或进行任何更改。