iOS + Parse Cloud Code-обновление конкретного пользователя (не вошедшего в систему пользователя)
Я пытаюсь обновить пользователя (который не является текущим пользователем). Я решил, что для обновления нужно использовать облачный код.
Я создал облачную функцию ниже, чтобы обновить выбранного пользователя. Я пытаюсь добавить 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)
});
});
Цель-С // meetingId-получается из объекта Meeting.
[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.)"}
Я новичок в этом деле. Облачный код - я просто хочу обновить массив, который принадлежит выбранному пользователю, и добавить к нему идентификатор meetingId. Любая помощь была бы очень признательна.
2 ответа:
Есть несколько проблем с кодом, которые помешают ему работать:
Облачный код ожидает, что параметр id собрания будет иметь имя
@"meetingId"
, поэтому измените параметры, переданные в@{@"objectId":user.objectId, @"meetingId":meetingId}
Используйте
Parse.User
, а не'_User'
для расширения пользователя.Get-don't build - пользователь обновляется
Подведение итогов...
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); }); });