用云代码操纵parse.com类

时间:2014-10-01 17:52:52

标签: ios parse-platform cloud-code

我有一个使用parse.com作为后端的随机消息传递应用程序。我使用以下键将消息保存在名为“Messages”的类中:

  • “messageBody”(这是邮件的内容)和
  • “senderId”(当然是发件人ID)

在我的Messages类中保存后,我使用云代码查询3个随机用户并将此消息发送给他们。

我的问题是哪种方法最好,因为我预见到当前方法存在错误。我正在使用的当前方法是在用户按下发送后我将消息保存到Parse.com然后我调用“发送给3个随机用户”云功能,但是如果我的消息没有成功保存到解析后端怎么办?云功能是否已实现?

  -(IBAction)send{

      PFObject *message = [PFObject objectWithClassName:@"Message"];
      [message setObject:self.messageContent forKey:@"messageBody"];
      [message setObject:[[PFUser currentUser] objectId] forKey:@"senderId"];

      [message saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error){
        if(error){
           //show alert with error
        }
        else{
           //everything was successful
        }
       }];



       [PFCloud callFunctionInBackground:@"sendToThreeRandomUsers" withParameters:@{} 
                                                                   block:^(NSString *result, NSError *error) {
                                                                       if (!error) {
                                                                          //cloud function was a success!
                                                                       }
                                                                    }];

  }

基本上我想知道是否有一种方法,只要在Messages类中有新对象,我可以说从我的解析后端发送给3个随机用户而不是从我的用户设备调用它?

或者我是否应该完全跳过将其保存到我的解析后端并直接发送到我的云代码作为云功能的参数?然后将它保存到我的后端。如果messageBody非常大,该怎么办?

所以这个问题真的不是关于代码而是构建它的方法。

希望我能用Hector Ramos作为这个问题的标签

1 个答案:

答案 0 :(得分:2)

为什么不为Messages类编写afterSave方法。每当成功保存新消息时,此方法(Parse.Cloud.afterSave(" Messages",function(request,response){..})将被执行,并且可以选择3个随机用户.API说明是在下面链接;

https://parse.com/docs/cloud_code_guide#functions-onsave

希望这有帮助, 问候。