如何计算使用解析保存数据的关注者数量,如下所示:

时间:2015-07-26 03:25:20

标签: ios swift parse-platform

我保存了我的关注者列表,如表格图片所示 enter image description here

用户&#34>专栏,我已经保存了被关注用户的objectId以及"关注者"列i已保存当前用户(关注者) 现在我想获得每个用户的关注者数量..我该怎么做?

2 个答案:

答案 0 :(得分:1)

Parse Query用于计算对象 https://parse.com/docs/ios/guide#queries-counting-objects 您可以在其中执行1个查询以获得1个用户的关注者数量。这可以很容易地最大限度地解析api限制,即(每分钟计数对象查询160请求)。对于这个Parse和Me,两者都不建议您使用计数对象,特别是如果您期望有大量用户。

解析建议以避免计数操作 https://parse.com/docs/ios/guide#performance-avoid-count-operations

您应该使用解析云代码(https://parse.com/docs/ios/guide#cloud-code)并在您的用户表中有一个密钥,可以记录该用户的当前关注者数量。

您的案例中的云代码。

Parse.Cloud.afterSave("Followers", function(request) {
    if(request.object.existed() == true)
        // No need to increment count for update due to some reason
        return;
    });
    // Get the user id for User
    var userID = request.object.get("user");// Or request.object.get("user").id;
    // Query the user in actual User Table
    var UserQuery = Parse.Object.extend("User");
    var query = new Parse.Query(UserQuery);
    query.get(userID).then(function(user) {
    // Increment the followersCount field on the User object
        user.increment("followersCount");
        user.save();
    }, function(error) {
        throw "Got an error " + error.code + " : " + error.message;
    });
});

也可能发生取消关注,离开删除练习后 https://parse.com/docs/ios/guide#cloud-code-afterdelete-triggers

答案 1 :(得分:1)

您可以使用解析服务器countObjectsInBackground()函数来完成任务。它为我工作。我已经使用了iOS SDK版本1.17.3

这是 Swift 4 示例代码:

    let query = PFQuery(className: "yourTableName")
    query.whereKey("user", equalTo: "yourUserId")
    query.countObjectsInBackground { (count: Int32, error: Error?) in
    if error == nil {
        print("My followers number: \(count)")
    }

有关更多信息:https://docs.parseplatform.org/ios/guide/#counting-objects

希望它能起作用。