사용자가 클래스를 업데이트 한 후 푸시 알림을 보내야하는 경우 푸시 알림이 대시 보드에서 작동합니다.
이 코드를 내 클라우드 코드에 추가했는데 성공 메시지가 포함 된 로그를 볼 수는 있지만 알림은 사용자에게 전송되지 않습니다. 이전 알림에서 전송 된 것으로 표시되지만 잠재 고객은 모두입니다. 전송 된 푸시 횟수가 0이면 내 클라우드 코드입니다.Parse Server 특정 사용자에게 알림을 푸시
Parse.Cloud.afterSave("Class", function(request, response) {
var inObject = request.object;
if (inObject.get("isLost")){
console.log("inObject is lost");
var targetUser = new Parse.User();
targetUser.id = inObject.get("UserID");
var query = new Parse.Query(Parse.Installation);
query.equalTo("user", targetUser);
Parse.Push.send({
where: query,
data: {
alert: "InObject",
badge: "Increment",
message: "Testando"
}
}, {
success: function() {
// Push was successful
console.log("success");
},
error: function(error) {
// Handle error
console.log("error: "+error.code+" message "+error.message);
throw "Got an error " + error.code + " : " + error.message;
},
useMasterKey: true
});
}
});
게시글 link과 같은 이중 쿼리를 시도했지만 성공하지 못했습니다. 사용자 ID를 기록했으며 대시 보드에 설치시 표시와 동일합니다. Target details from push
편집
클래스 (이것은 자바의)에 대한저장 코드 :
ParseObject object = new ParseObject(Class.class.getSimpleName());
object.put(NAME, getName());
object.put(UUID, getUUID());
object.put(ICON_ID, getIconID());
object.put(ADDRESS, getAddress());
object.put(ID1, iD1.toString());
object.put(ID2, iD2.toString());
object.put(ID3, iD3.toString());
object.put(IS_LOST, getIsLost());
object.put(USER, parseUserID);
object.put(DISTANCE, getDistance());
object.put(LATITUDE, getLatitude());
object.put(LONGITUDE, getLongitude());
object.saveEventually();
를 내가 자세한 내용은 푸시 알림을 클릭하면
이는 표시 대상입니다 parseID는 ParseUser.getCurrentUser(). getObjectID()에 의해 생성됩니다.
검색어가 0 번 설치되어 0 번 푸시됩니다. 이것을 사용하십시오 :'var user = request.object.get ("user");' –
@SteveMcMeen,이 방법으로 작동하지만 어떤 사용자가 전달되고 있습니까? 요청한 사람? 그렇다면 inObject에 저장된 사용자가 필요하므로이 기능은 저에게 적합하지 않습니다. – ClaudioBlanco
예, 해당 사용자가 요청한 사람입니다. 수업을 저장하는 코드를 추가하여 도움을받을 수 있습니다. 저장하는 데이터의 종류를 알 수 없습니다. –