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 に答える