我正在学习云代码的第三天,但进展甚微。我对呼叫过程的工作方式感到困惑。在云代码中,我需要使用afterSave来查询一个类,其中键“sent”等于false,对于recipients数组中的每个收件人,向每个收件人推送一个通知并将“sent”设置为true。
我将afterSave函数保存在main.js中,但是每次使用PFCloud.callFunctionInBackground()
调用它时,我都会得到[Error]: function not found (Code: 141, Version: 1.7.2)
。
这是我的余波触发器:
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
调用它? 最佳答案
我认为afterSave
所做的事情与你想象的不同-当你保存一个对象时它会自动触发。在本例中,如果您有一个Send
类型的对象,并且您更新了该对象并保存了它,那么您的afterSave
函数将被调用。例如,这对于验证保存的对象是否有效或更新相关对象通常很有用。
我觉得你可以用Cloud Function完成你想做的事情。您可以从Swift代码调用它,它是一个不同的命名函数,而不是自动调用的函数。