方案
我有这两个云功能,我想在我的应用程序中使用。他们检查用户的在线状态,我想为每个用户设置一个布尔键“isOnline”,如果用户在线,则为YES;如果不是,则为“否”。解析iOS SDK:从Xcode调用云功能
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,正因为如此,我需要一些帮助让我的周围发生了什么头/就是我应该做的。
问题
)我什么时候叫我的Xcode项目中 “registerActivity” 和 “getOnlineUsers”?
)“response.success(users)”只是一个PFUser对象的数组吗?如果“2)”为真,那么如何将“response.success(users)”中的所有用户的布尔键“isOnline”设置为YES(如果它们在数组中) ?
嗨雅各非常感谢您的回答。如果你能为我澄清这一件事,我很欣赏它,因为没有人向我解释过这一点 - 那么,NSArray *用户(在上面的完成代码块中)与云功能中的response.success(用户)是一样的吗? –
另外,如果你也可以帮我解决这个问题。 **在我的Xcode项目中,我可以调用“registerActivity”和“getOnlineUsers”吗?我在applicationDidFinishLaunchingWithOptions方法中调用“registerActivity”吗?每次我将“在线标签”设置为在线或离线时,是否都要调用“getOnlineUsers”? –
汤姆,没问题。是的,他们基本上是一样的。当你调用response.success(用户)时,你正在将用户对象数组发回块中,并成为NSArray *用户。至于你的第二个问题,我有点困惑。我猜这些功能的重点在于获取在线用户列表,并且很可能将其展示给应用中的用户。如果您希望在应用启动时发生这种情况,那么我会将其放入您的第一个视图控制器的代码中,否则,我会将它放在任何想要获取在线用户列表的位置。如果我明白这个错误,请告诉我。 – Jacob