0

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

  • “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 作为这个问题的标签

4

1 回答 1

2

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

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

希望这会有所帮助,问候。

于 2014-10-02T11:41:57.283 回答