我在学习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
调用它?
答案 0 :(得分:1)
我认为afterSave
正在做一些与您认为不同的事情 - 它会在您保存对象时自动触发。在这种情况下,如果您有一个Send
类型的对象,并且您更新了该对象并将其保存,则会调用您的afterSave
函数。例如,这通常用于验证保存的对象是有效的,还是更新相关对象。
我觉得你可以用Cloud Function来完成你想要做的事情。你可以从你的Swift代码中调用它,它是一个独特的命名函数,而不是一个自动调用的函数。