解析云代码 - 在发送响应之前仅检索某些列。

Parse Cloud Code - Only Retrieve Certain Columns Before Sending Response.

我目前有这个云代码来检索与当前用户有关系的所有用户。我必须首先找到当前用户,然后查询 "Friends" 列,然后查询关系查询步骤。

response.success(results) returns所有当前用户所有好友的属性。我只想要属于这些朋友的一些专栏,而不是他们在注册时保存的每一个东西。

    Parse.Cloud.define("getFriends", function(request, response) {
    var userId = request.params.UserKey;
    var query = new Parse.Query(Parse.User);
    query.ascending("updatedAt");
    query.get(userId, {
        success: function(foundCurrentUser) {
            var currentUser = foundCurrentUser;
            var relation = currentUser.relation("Friends");
            var getRelationQuery = relation.query();
            getRelationQuery.find().then(function(results) {


                response.success(results);

            });
        },
        error: function(error) {
            response.error(error);
        }
    });
});

我正在使用 swift 来使用响应,我不确定是否需要调整 swift 代码但无论如何都会提供它。

func LoadCarpoolersFromParse(Success:(object:AnyObject)->(),Failure:(error:NSError)->())
{
        let params = NSMutableDictionary()
        params.setObject(PFUser.currentUser()!.objectId!, forKey: "UserKey")

        PFCloud.callFunctionInBackground("getCarpoolers", withParameters: params as [NSObject : AnyObject], block: {
            (response:AnyObject?, error: NSError?) -> Void in
            if error == nil {
                Success(object: response!)
            }
            else{
                Failure(error:error!)
            }
        })
    }
}

您可以使用 Parse.Queryselect 方法,在您的云代码中进行以下更改

Parse.Cloud.define("getFriends", function(request, response) {
var userId = request.params.UserKey;
var query = new Parse.Query(Parse.User);
query.ascending("updatedAt");
query.select("name","phone"); // replace with your required fields