Error: Parse Objects not allowed here

Error: Parse Objects not allowed here

当我尝试 运行 计数函数时,我得到

Error: Parse Objects not allowed here

E2015-11-09T12:36:10.778Z]v184 Ran cloud function count with:
  Input: {}
  Result: Error: Parse Objects not allowed here
    at n (Parse.js:16:1063)
    at Parse.js:16:1927
    at Array.map (native)
    at n (Parse.js:16:1904)
    at n (Parse.js:16:1995)
    at r.default (Parse.js:16:2422)
    at Object.o.default.setCloudController.run (Parse.js:13:2159)
    at Object.n [as run] (Parse.js:13:1730)
    at e.query.find.success (main.js:10:19)
    at e.<anonymous> (Parse.js:14:28224)

搜索结果引导我到这个question,但是所有的教程都提到用这种方式发送参数。这段代码曾经运行良好。

计数函数:

Parse.Cloud.define('count', function(request, response) {

var query = new Parse.Query('MyS');
  query.equalTo("Notify", true);
  query.notEqualTo ("MainEventCode", '5');

  query.find({
    success: function(results) {
      Parse.Cloud.run('http', {params : results}).then(
        function(result) {
          console.log('httpResponse is : ' + result);
          response.success('Done !');
        }, function(error) {
          console.log('Error while RUN !' + error);
      });
    },
    error: function(error) {
      response.error(error);
    }
  });
});

http 函数:

Parse.Cloud.define('http', function(request, response) {

var query = new Parse.Query(Parse.Installation);
.
.
.
}

我假设 resultsPFObjects 的数组。不幸的是,您不能发送 PFObjects 或包含 PFObjects 的数组作为参数。相反,您需要发送一个对象 ID 数组,并在您的 http 函数中检索实际对象。

我建议将对象 ID 传递给函数。然后在云函数中:

var Movie = Parse.Object.extend("MovieClass");

Parse.Cloud.define("averageStars", async (request) => {

  //Creating the ParseObject
  var pointer = Movie.createWithoutData(request.params.obj_id);

  //Creating a query
  const query = new Parse.Query("ReviewClass");
  query.equalTo("field_pointer_movie",pointer);

  const results = await query.find();
  let sum = 0;
  for (let i = 0; i < results.length; ++i) {
    sum += results[i].get("stars");
  }
  return sum / results.length;
});

这个doc帮帮我