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

Tom*_*ool 3 javascript cloud ios parse-platform

场景
我想在我的应用程序中使用这两个云函数.他们检查用户的在线状态,我想为每个用户设置一个布尔键"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);
    });
});
Run Code Online (Sandbox Code Playgroud)

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

问题
1)我何时在Xcode项目中调用"registerActivity"和"getOnlineUsers"?

2)"response.success(users)"只是一组PFUser对象吗?

3)如果"2)"为真,那么如果它们在数组中,如何将"response.success(users)"中的所有用户的bool键"isOnline"设置为YES?

Jac*_*cob 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) 
    {
    
    } }];
    
    Run Code Online (Sandbox Code Playgroud)
  2. 是的,我相信它只是一个PFUser对象的数组,我会这样做只是为了确保.

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