2017-12-30 19 views
1

내 개체의 단일 키 값이 구문 분석 코드 0x에서 변경 될 때마다 밀어 넣기 알림을 보내려고합니다.파스 코드 클라우드 코드 afterSave 후크에서 값이 변경되었는지 확인하는 방법?

Parse.Cloud.afterSave("Channel", function(request) { 
    var channel = request.object 
    // TODO: check if value of channel key "state" was changed 
}); 

state의 값이 업데이트되었는지 어떻게 확인할 수 있습니까?

내가 request 객체에서 얻을 수있는 모든 데이터입니다 : http://parseplatform.org/Parse-SDK-JS/api/v1.11.0/Parse.Cloud.html#.TriggerRequest

솔루션이 스레드에서 제안 잘못된 느낌 : Parse Javascript API Cloud Code afterSave with access to beforeSave values

나는 내가 beforeSave 후크의 더러운 방법을 통해이 작업을 수행 할 수 있습니다 알고 있습니다. 그러나 이것은 나를 위해 작동하지 않습니다. 왜? 많은 사용자에게 푸시 알림을 보내면 시간이 걸립니다. 푸시 알림을 수신하는 클라이언트는 서버에서 업데이트 된 채널 개체를 요청하기 시작합니다. 그러나 beforeSave이 모든 푸시 전송을 완료하지 않은 경우 채널 객체가 데이터베이스에 유지되지 않기 때문에 객체의 이전 버전을 수신 할 수 있습니다.

답변

1

request.original을 사용할 수 있습니다. 예를 들면 다음과 같습니다.

Parse.Cloud.afterSave("Channel", function(request) { 
    var channel = request.object; 
    var channel_orig = request.original; 

    if (channel.get("status") != channel_orig.get("status")) { 
     // Send push notification. 
    } 
}); 

설명서에는 request.original에 대한 내용이 나와 있습니다. "설정되어있는 경우 현재 저장된 개체입니다." 그래도 어떤 경우에 설정 될지 확신하지 못합니다. 제 사용 사례에서는 위 코드 스 니펫에서 설명한대로 작동합니다.

+0

이것은 완벽하게 작동합니다! 고맙습니다! – funkenstrahlen