解析iOS SDK:从Xcode调用云函数

时间:2014-07-21 19:36:32

标签: javascript ios parse-platform cloud

方案
我有两个我想在我的应用程序中使用的云函数。他们检查用户的在线状态,我想设置一个布尔键" isOnline"如果用户在线,则每个用户为YES;如果不在,则为NO。

var moment = require("moment");

Parse.Cloud.define("registerActivity", function(request, response) {
    var user = request.user;
    user.set("lastActive", new Date());
    user.save().then(function (user) {
        response.success();
    }, function (error) {
        console.log(error);
        response.error(error);
    });
});

Parse.Cloud.define("getOnlineUsers", function(request, response) {
    var userQuery = new Parse.Query(Parse.User);
    var activeSince = moment().subtract("minutes", 2).toDate();
    userQuery.greaterThan("lastActive", activeSince);
    userQuery.find().then(function (users) {
        response.success(users);
    }, function (error) {
        response.error(error);
    });
});

问题
我不是最好用Javascript,因此我需要一些帮助来了解正在发生的事情/我应该做的事情。

问题
1 )我什么时候打电话给" registerActivity"和" getOnlineUsers"在我的Xcode项目中?

2 )" response.success(用户)"只是一组PFUser对象?

3 )如果" 2)"是的,那么如何设置bool键" isOnline"对于" response.success(用户)"中的所有用户如果它们在阵列中则为YES?

1 个答案:

答案 0 :(得分:5)

  1. 当您想要获得在线用户时,您可以调用这些功能。调用这些代码的代码是:

    [PFCloud callFunctionInBackground:@"registerActivity" withParameters:@{@"user": Put objectId for user here}                             
    block:^(NSString *response, NSError *error) {
                                        if (!error) {
    
                                        }
                                    }];
    
    [PFCloud callFunctionInBackground:@"getOnlineUsers" withParameters:@{} 
    block:^(NSArray *users, NSError *error) { 
    if (!error) 
    {
    
    } }];
    
  2. 是的,我相信它只是一个PFUser对象的数组,我会这样做只是为了确保。

  3. 从" getOnlineUsers"得到回复后您应该将其发送回另一个使用主密钥(Parse.Cloud.useMasterKey();)来访问/更改用户对象的云代码函数,并更改" isOnline"字段为YES。