2014-11-27 5 views
3

다음은 사용하려는 Parse JavaScript 코드입니다. 새로운 _ 사용자가 만들어지면서이를 '클라이언트'역할에 추가하려고합니다.Parse.com CloudCode 기존 역할에 사용자를 추가하지 않음

Parse.Cloud.afterSave(Parse.User, function(request) { 
    Parse.Cloud.useMasterKey(); 

    query = new Parse.Query(Parse.Role); 
    query.equalTo("name", "Client"); 
    query.first ({ 
     success: function(role) { 
      role.getUsers().add(request.user); 
      role.save(); 
     }, 
     error: function(error) { 
      throw "Got an error " + error.code + " : " + error.message; 
     } 
    }); 
}); 

이것은 Parse.com의 역할 예제에서 직접 코드를 가져옵니다. 이 코드는 새로운 _User가 저장되고 Result: Success을 반환 할 때 행복하게 실행되지만 데이터 브라우저에서 해당 역할에 연결된 "사용자"를 확인할 때 아무 일도 일어나지 않았습니다.

또한 Parse.com의 이전 포럼에서 예로 든 것처럼 role.relation("users").add(request.user); 대신 role.getUsers().add(request.user);을 입력 해 보았습니다. 차이는 없습니다. 이것은 정말로 직선적이어야하는 것처럼 보입니다. 그래서 내가 잘못하고있는 것이 확실하지 않습니다.

(I 수동으로 클라이언트 역할에 _Users을 추가, 컬를 사용하여 REST API를 사용했으며,이 작업을 수행, 그래서 그것을 작동합니다 알고 있습니다.)

+0

request.user가 유효한 Parse.User 개체이고 역할이 존재했는지 확인할 수 있습니까? 역할이 존재한다면, 그것은'role.getUsers(). add (Parse.User.current()); '와 함께 동작해야합니다.' – eth3lbert

+0

request.user는 유효한 사용자입니다. 당신의 대안을 시도해 보았습니다. 두 경우 모두 응답을 받았습니다. _ 메시지 없음. –

+0

참고로 도움이되었으므로 https://parse.com/questions/cloudcode-adding-user-to-role-on-beforesave 도움을 받았습니다. 한 함수 내에서 여러 작업을 수행 할 수 없으며이 작업을 수행 할 수 없습니다. 문제는 response.success가 함수에서 다른 곳으로 불려지므로 내 역할 설정이 완료 될 시간이 부족하다는 것입니다. 그것에 3 시간을 낭비했다. .. damm javascript! – DogCoffee

답변

4

당신이 대신 request.object를 사용할 필요가 밝혀 request.user. 이제 작동합니다!

관련 문제