您好我试图使用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
我无法弄清楚这个。可能是什么问题?有人可以帮忙吗?
由于
答案 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。