2015-04-20 53 views
1

我有以下的云功能解析云查询返回结果为空

Parse.Cloud.define("test", function(request, response) { 
    Parse.Cloud.useMasterKey() 
    var query = new Parse.Query("Verification"); 
    query.equalTo("objectId", "lHBL87Sg2H"); 

    query.find({ 
     success: function(results) 
     { 
      response.success(results[0].get("objectId")); 
     }, 
     error: function() 
     { 
      response.error("failed"); 
     } 
    }); 
}) 

我呼吁在用下面的代码Objective C的这个云功能,

[PFCloud callFunctionInBackground:@"test" 
        withParameters:nil 
          block:^(NSString *result, NSError *error) { 
           if (!error) { 
            NSLog(@"%@",result); 
           } 
          }]; 

此调用的结果是(空)。

解析日志显示以下记录

I2015-04-20T20:07:29.383Z] v81: Ran cloud function test1 for user zOpfIOyZQ1 with: 
Input: {} 
Result: undefined 

我也尝试了承诺,但输出仍是空。

+0

从解析响应消息中提到'test1'功能,但在代码中你提到的功能'test'是那是一个错字还是不同的功能?如果你在'response.success()'之前添加'console.log(results [0] .get(“objectId”));您可能会发送'null'作为回应,并在这种情况下检查“结果”是否包含任何项目... –

+0

这是发布该问题的错字。我在我的代码中一直使用test1。使用console.log(results [0] .get(“objectId”))的输出如下所示:输入:{} 结果:undefined I2015-04-20T22:37:20.926Z]没有提供信息 –

+0

感谢编辑,uraimo –

回答

1

获取对象给予其ID,使用Query.get()如下...

Parse.Cloud.define("test", function(request, response) { 
    Parse.Cloud.useMasterKey(); 
    var query = new Parse.Query("Verification"); 
    query.get("lHBL87Sg2H").then(function(object) { 
    var objectId = object.id; 
    var someAttribute = object.get("foo"); 
    response.success({"the id is":objectId, "foo is": someAttribute}); 
    }, function(error) { 
    response.error("error " + error.message); 
    }); 
}); 
+0

令人惊叹!有效。但是当我用object.get(“objectId”)替换object.id时,输出仍然是零。那么我怎样才能得到这个类的其他非默认属性呢?谢谢。 –

+0

请参阅编辑,如果我正确理解这个问题,'.id'适用于id,'.get(“column_name”)'为非默认属性。 – danh

+0

是的,你是对的。非常感谢! –