2014-10-01 2 views
0

parse.com을 백엔드로 사용하는 무작위 메시징 앱이 있습니다. 나는 키가 "메시지"라는 클래스의 메시지를 저장하고 (물론 발신자 ID입니다) 및 클라우드 코드로 parse.com 클래스 조작하기

  • "센더"합니다 (메시지의 내용이다)

    • "messageBody"

    이 메시지가 내 메시지 클래스에 저장되면 클라우드 코드를 사용하여 임의의 3 명의 사용자를 쿼리하고이 메시지를 보낼 수 있습니다.

    제가 현재 방법에서 오류를 예상하기 때문에 내 질문은이 작업을 수행하는 가장 좋은 방법입니다. 내가 사용하고있는 현재 방법은 사용자가 Send를 눌러서 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! 
                         } 
                        }]; 
    
        } 
    

    기본적으로 나는 방법이 있는지 알고 싶어 내 사용자 장치에서 호출보다 내 구문 분석 백엔드에서 3 임의의 사용자에게이 오히려 보낼 말할 수있는 메시지 클래스의 새로운 객체가있을 때마다 그?

    아니면 그냥 구문 분석 백엔드로 저장하지 않고 클라우드 기능의 매개 변수로 클라우드 코드로 바로 전송해야합니까? 그런 다음 내 백엔드에 저장하십시오. messageBody가 아주 큰 경우는 어떨까요?

    그래서이 질문은 실제로 코드에 관한 것이 아니라 구조화 방법에 관한 것입니다. 당신이 당신의 메시지 클래스에 대한 afterSave 방법을 쓰지 않는 이유는

    소원이 질문

  • 답변

    2

    에 대한 태그로 헥터 라모스를 사용할 수 있습니다. 새 메시지가 성공적으로 저장 될 때마다이 메서드 (Parse.Cloud.afterSave ("Messages", function (request, response) {..})가 실행되고 임의의 3 명의 사용자를 선택할 수 있습니다 .. API 설명은 아래 링크

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

    희망이.

    +0

    이 완전히 갈 수있는 방법입니다., –

    +0

    감사 감사를하는 데 도움이!하지만 난이를 사용하는 경우 내가 (클라우드 기능을 사용하여 구문 분석 데이터를 브라우저에 메시지를 메시지를 저장한다 params로 사용) 아니면 위의 코드에서 보여준 블록을 배경으로 저장해야합니까? – ian

    +0

    먼저 데이터를 Cloud 및 코드 블록을 통해 Parse Data Browser에 저장할 수 있습니다. o 이것은 저장 작업 후 메시지 저장 클래스가 데이터를 메시지 클래스에 저장할 수 있음을 의미합니다.이 메시지는 afterSave 클라우드 코드가 트리거됩니다. – kingspeech