方案
我有两个我想在我的应用程序中使用的云函数。他们检查用户的在线状态,我想设置一个布尔键" 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?
答案 0 :(得分:5)
当您想要获得在线用户时,您可以调用这些功能。调用这些代码的代码是:
[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)
{
} }];
是的,我相信它只是一个PFUser对象的数组,我会这样做只是为了确保。
从" getOnlineUsers"得到回复后您应该将其发送回另一个使用主密钥(Parse.Cloud.useMasterKey();
)来访问/更改用户对象的云代码函数,并更改" isOnline"字段为YES。