我需要查询我的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
答案 0 :(得分:0)
要拉入传递给ParseCloud函数的变量,你可以这样拉:
query.matchesQuery("user", request.params.query)