解析云函数返回null

时间:2014-04-01 14:50:22

标签: javascript android parse-platform

我需要查询我的Installation类,所以我被迫使用Parse Cloud。我将一个地图作为参数放到android的云函数中,并将它用于另一个查询,但它给了我null:

这是我的云功能:

Parse.Cloud.define("hello", function(request, response) {
  Parse.Cloud.useMasterKey();
  var query = new Parse.Query("_Installation");
  query.matchesQuery("user", request.params.get("query"))
  query.find({
    success: function(results) {
      response.success(results.length);
    },
    error: function() {
      response.error("failed");
    }
  });
});

在android:

Map<String, ParseQuery> map = new HashMap();
map.put("query", innerQuery);

 ParseCloud.callFunctionInBackground("hello", map, new FunctionCallback<String>() {
                            @Override
                            public void done(String o, ParseException e) {
                                if(e==null)
                                 Log.d("debug", "cloud function result: " + o);
                                else
                                    Log.d("debug", "cloud function error: " + e.getMessage());
                            }
                        });

上面的代码返回“cloud function result:null”。 顺便说一下,我对javascript并不熟悉。

更新: 当我将其更改为request.params.query时,它给了我这个错误:

Input: {"query":{"where":{"Student_ID":{"$regex":"\\Q13-0699-678\\E"}},"className":"_User"}}
  Failed with: TypeError: Object #<Object> has no method 'toJSON'
    at Object.b.Query.matchesQuery (Parse.js:3:13613)
    at main.js:7:9

1 个答案:

答案 0 :(得分:0)

要拉入传递给ParseCloud函数的变量,你可以这样拉:

query.matchesQuery("user", request.params.query)