iOS + Parse Cloud Code - 更新特定用户(未登录用户)

标签 ios parse-platform 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)
                                });

               });

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。任何帮助将不胜感激。

最佳答案

代码有一些问题会阻止它工作:

  1. 云代码希望 session ID 参数被命名为 @"meetingId",因此更改传递给 @{@"objectId":user.objectId, @ "meetingId":meetingId}

  2. 使用 Parse.User,而不是 '_User' 来扩展用户。

  3. 获取 - 不要构建 - 正在更新的用户

总结...

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/

相关文章:

ios - 避免类对象数组中的重复 Swift 3

swift - 将 PFObject 转换为 cellForRowAtIndexPath 中的子类时为空值

javascript - 如何在 Parse.com 中将数据保存到用户 session

java - Android (Java) : Parse. com 没有订阅不是硬编码字符串的 channel ?

javascript - Parse.View.extend - "cannot read property ' 未定义的扩展”

ios - 解析推送通知云代码错误?

node.js - 解析嵌套的 Promise?

ios - 如何在执行 segue 之前获取 UITableView 中最后选定的行

ios - 两个部分与一个 uiswitch? - swift

ios - 'UIViewController' 不是 'ViewController' 的子类型