保存从查询中获取的用户的属性(即不在currentUser上)

das*_*ist 6 ios parse-platform

我有兴趣根据我执行的操作将属性保存到数据库中的用户currentUser.基于以下代码,我收到错误消息"除非已通过logIn或signUp验证用户,否则无法保存用户"

NSString *IDToFetch = @"some_id";
PFQuery *query = [PFUser query];
[query whereKey:@"user_id" equalTo:IDToFetch];
PFUser *foundUser = (PFUser *)[query getFirstObject];

foundUser[@"new_column"] = @"Some text";
[foundUser saveEventually]; //here an exception is thrown
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一个解决方法,我可以保存属性,而foundUser无需登录该用户.谢谢你的帮助!

han*_*ank 12

如果要更新当前不是登录用户的用户,则需要使用以下命令调用Parse master-key.

您可以从CloudCode执行此操作;

Parse.Cloud.define('editUser', function(request, response) {
    var userId = request.params.userId,
        newColText = request.params.newColText;

    var User = Parse.Object.extend('_User'),
        user = new User({ objectId: userId });

    user.set('new_col', newColText);

    Parse.Cloud.useMasterKey();
    user.save().then(function(user) {
        response.success(user);
    }, function(error) {
        response.error(error)
    });
});
Run Code Online (Sandbox Code Playgroud)

并从您的iOS项目中调用它;

[PFCloud callFunction:@"editUser" withParameters:@{
    @"userId": @"someuseridhere",
    @"newColText": @"new text!"
}];
Run Code Online (Sandbox Code Playgroud)