使用云代码操作 parse.com 类

Posted

技术标签:

【中文标题】使用云代码操作 parse.com 类【英文标题】:manipulating parse.com class with cloud code 【发布时间】:2014-10-01 17:52:51 【问题描述】:

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

“messageBody”(即消息的内容)和 “senderId”(当然是发件人ID)

在我的消息类中保存后,我正在使用云代码查询 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】:

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

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

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

【讨论】:

这完全是可行的方法。 谢谢!但是如果我使用它,我应该使用云功能(消息作为参数)将消息保存到解析数据浏览器,还是应该像我在上面的代码中显示的那样将它保存在后台? 首先,您可以通过云和您的代码块将数据保存到 Parse Data Browser。因此,这意味着您的块可以在保存操作后将数据保存到 Message 类,您的 afterSave 云代码将被触发。

以上是关于使用云代码操作 parse.com 类的主要内容,如果未能解决你的问题,请参考以下文章

如何进行 Parse.com 云代码调用?

Parse.com 云代码 afterSave() 错误:“未捕获尝试使用指向新的未保存对象的指针保存对象。”

Parse.com 云代码 - 保存后

鲲鹏云服务技术之网络类云服务(学习笔记一)

Parse.com - 从云代码函数返回多个值

如何将云代码从 parse.com 移动到 heroku