我有兴趣根据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
我想知道是否有一个解决方法,我可以将属性保存到foundUser,而无需登录该用户.谢谢你的帮助!
解决方法
如果要更新当前不是登录用户的用户,则需要使用主密钥调用Parse.
您可以从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)
});
});
并从您的iOS项目中调用它;
[PFCloud callFunction:@"editUser" withParameters:@{
@"userId": @"someuseridhere",@"newColText": @"new text!"
}];