我有一个使用parse.com作为后端的随机消息应用程序 . 我使用键将消息保存在名为“Messages”的类中:
-
"messageBody"(这是邮件的内容)和
-
"senderId"(当然是发件人ID)
在我的Messages类中保存后,我使用 Cloud 代码查询3个随机用户并将此消息发送给他们 .
我的问题是哪个是最好的方法,因为我预见到当前方法中的错误 . 我正在使用的当前方法是在用户按下发送后我将消息保存到Parse.com然后我调用“发送给3个随机用户” Cloud 功能,但是如果我的消息没有成功保存到解析后端怎么办? Cloud 功能实现了吗?
-(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个随机用户而不是从我的用户设备调用它?
或者我是否应该完全跳过将其保存到我的解析后端,并将其直接发送到我的 Cloud 代码作为 Cloud 功能的参数?然后将它保存到我的后端 . 如果messageBody非常大,该怎么办?
所以这个问题真的不是关于代码而是构建它的方法 .
希望我能用Hector Ramos作为这个问题的标签
1 回答
为什么不为Messages类编写afterSave方法 . 每当成功保存新消息时,执行此方法(Parse.Cloud.afterSave(“消息”,函数(请求,响应)),并且可以选择3个随机用户.API说明在以下链接中;
https://parse.com/docs/cloud_code_guide#functions-onsave
希望这会有所帮助,问候 .