解析查询总是返回空结果

时间:2014-05-28 14:39:52

标签: php android parse-platform

您好我试图使用Parse.com的Cloud Code API,我试图创建一个代码片段来查询我的数据浏览器中显示的数据

我的云代码是

Parse.Cloud.define("getDriver", function (request, response){
    var User = Parse.Object.extend("User");
    var query = new Parse.Query(User);
    var lastlogin;

    //response.success({"obj":request.params.objectId}); //works

    query.equalTo("objectId",request.params.objectId);
    query.find({
        success: function(objs) {

            response.success({"driver_id":objs.length});

        },
        error: function(error) {
            // The object was not retrieved successfully.
            // error is a Parse.Error with an error code and description.
        }
    });
});

我用php curl调用云代码,代码是

$ch =curl_init("https://api.parse.com/1/functions/getDriver/");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,true);
curl_setopt($ch,CURLOPT_CAINFO,"ca-bundle.crt");

curl_setopt($ch,CURLOPT_HTTPHEADER,array('X-Parse-Application-Id:   APPLICATION_ID','X-Parse-REST-API-Key: API_KEY', 'Content-Type: application/json'));

curl_setopt($ch,CURLOPT_POSTFIELDS, "{\"objectId\": \"NDpoVvFcGP\"}");
  //execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);

我的问题是,即使传递了正确的objectId,查询也总是给出一个空结果:NDpoVvFcGP

我无法弄清楚这个。可能是什么问题?有人可以帮忙吗?

由于

2 个答案:

答案 0 :(得分:2)

如果您要查询内置的User类,则应该查看documentation

具体而言,您应该按如下方式创建用户查询:

var query = new Parse.Query(Parse.User);

在内部我认为他们使用“_User”作为类名,这就是使用“User”时查询失败的原因。最好只使用记录和支持的查询User类的方法。

答案 1 :(得分:1)

我认为您的问题在于您如何查询用户。看一下这个例子:

Parse.Cloud.define("totalMileage", function( request, response ) {
  var user = new Parse.User();
  user.id = request.params.userid;
  var query = new Parse.Query("Trip");
  query.include('user');
  query.equalTo("user", user);
  query.find({
    success: function(results) {
      var sum = 0;
      for ( var i = 0; i < results.length; ++i ) {
        sum +=  results[i].get("end") - results[i].get("start") ;
      }
      response.success( sum );
    },
    error: function() {
      response.error("trip lookup failed");
    }
  });
});

首先我声明一个用户对象,然后用传入的参数设置id,然后在查询中包含对象

如果您想了解更多信息,我会写一篇here