我正在尝试更新用户(不是当前用户)。我认为您必须使用云代码来进行更新。
我在下面创建了云函数来更新选定的用户。我正在尝试将 meetingId 添加到属于 User 类的数组属性。
云代码:
Parse.Cloud.define('updateUser', function(request, response) {
var userId = request.params.userId,
meetingId = request.params.meetingId;
var User = Parse.Object.extend('_User'),
user = new User({ objectId: userId });
user.addUnique("meetingsArray", meetingId)
user.save(null, {userMasterKey:true}).then(function(user) {
response.success(user);
}, function(error) {
response.error(error)
});
});
objective-C //meetingId - 从 session 对象中获得。
[PFCloud callFunctionInBackground:@"updateUser" withParameters:@{@"objectId":user.objectId, @"meetingsArray":meetingId} block:^(NSString *result, NSError *error)
{
if (!error) {
NSLog(@"%@",result);
}else if(error){
NSLog(@"%@", error);
}
}];
当我运行该应用程序时 - 我收到以下错误代码:
Error Domain=Parse Code=141 "The operation couldn’t be completed. (Parse error 141.)" UserInfo=0x1704f2780 {code=141, temporary=0, error={"code":201,"message":"missing user password"}, originalError=Error Domain=NSURLErrorDomain Code=-1011 "The operation couldn’t be completed. (NSURLErrorDomain error -1011.)"}
我是 Cloud 代码的新手 - 我基本上只想更新属于所选用户的数组并向其添加 meetingId。任何帮助将不胜感激。
最佳答案
代码有一些问题会阻止它工作:
云代码希望 session ID 参数被命名为
@"meetingId"
,因此更改传递给@{@"objectId":user.objectId, @ "meetingId":meetingId}
使用
Parse.User
,而不是'_User'
来扩展用户。获取 - 不要构建 - 正在更新的用户
总结...
Parse.Cloud.define('updateUser', function(request, response) {
var userId = request.params.userId;
var meetingId = request.params.meetingId;
var query = new Parse.Query(Parse.User);
query.get(userId).then(function(user) {
user.addUnique("meetingsArray", meetingId);
return user.save(null, {useMasterKey:true});
}).then(function(user) {
response.success(user);
}, function(error) {
response.error(error);
});
});
关于iOS + Parse Cloud Code - 更新特定用户(未登录用户),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32041978/