2015-07-03 57 views
1

我在学习云码的第3天,并取得了进展甚微。我很困惑,呼叫过程如何工作。在云代码,我需要使用afterSave用来查询类,其中关键的“已发送”等于假,并为接受者阵列中的每个收件人,推通知到每个并设置“派”为真。使用afterSave使用Parse云代码

我有保存在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); 
    } 
    }); 
}); 

在这里,我打电话斯威夫特的功能:

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

     } 

如果我打电话给一个saveInBackgroundWithBlock瓶盖内的afterSave扳机,我称它使用PFCloud.callFunctionInBackground

回答

1

我觉得afterSave做事情从你认为这是不同的 - 当你保存对象时,它就会自动触发。在这种情况下,如果你有Send类型的对象,而且你更新的对象,并保存它,你afterSave函数将被调用。例如,这通常用于验证保存的对象是否有效,或者更新相关的对象。

我觉得你可以做到你想用Cloud Function做什么。你可以从你的Swift代码调用它,它是一个独特的命名函数,而不是一个自动调用的函数。

+0

待办事项afterSave任何对象保存AFTER触发器被调用,或在特定的类对象?似乎触发器和函数之间的唯一区别实际上是不得不在我的代码中调用它,不是吗? – chicobermuda

+0

@dperk当您保存指定类型的对象时,它们会被调用。在你的例子中,当保存一些类型为“Send”的事件时,你的afterSave将被触发。在定义触发器时,可以指定它与字符串相对应的类。当该类型的对象被保存时,它将被触发。您可以随时(并且基本上在任何地方)调用云端函数,而且它们不会与某个类相对应。 – yeah568