2015-07-03 56 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