使用AfterSave和Parse Cloud Code

时间:2015-07-03 23:58:02

标签: javascript swift parse-platform cloud-code

我在学习Cloud Code的第3天,并取得了很小的进展。我对调用过程的工作原理感到困惑。在Cloud Code中,我需要使用afterSave来查询一个类,其中key" sent"等于false,并且对于收件人数组中的每个收件人,将通知推送到每个收件人并设置" sent"为真。

我在main.js中保存了afterSave函数,但每次使用PFCloud.callFunctionInBackground()调用它时,我都会[Error]: function not found (Code: 141, Version: 1.7.2)

这是我的afterSave触发器:

Parse.Cloud.afterSave("Send", function(request) {
  query = new Parse.Query("Shares");
  query.get(request.object.get("share").id, {
    success: function(post) {
      console.success("Howdy");
    },
    error: function(error) {
      console.error("Got an error " + error.code + " : " + error.message);
    }
  });
});

我在这里调用Swift中的函数:

PFCloud.callFunctionInBackground("Send", withParameters: nil) {
            (response: AnyObject?, error: NSError?) -> Void in
            let result = response as? String
            println(result)

        }

如果我在saveInBackgroundWithBlock关闭内调用afterSave触发器,是否可以使用PFCloud.callFunctionInBackground调用它?

1 个答案:

答案 0 :(得分:1)

我认为afterSave正在做一些与您认为不同的事情 - 它会在您保存对象时自动触发。在这种情况下,如果您有一个Send类型的对象,并且您更新了该对象并将其保存,则会调用您的afterSave函数。例如,这通常用于验证保存的对象是有效的,还是更新相关对象。

我觉得你可以用Cloud Function来完成你想要做的事情。你可以从你的Swift代码中调用它,它是一个独特的命名函数,而不是一个自动调用的函数。