ユーザーがクラスを更新した後にプッシュ通知を送信する必要があり、プッシュ通知がダッシュボードから機能しています。
このコードをクラウドコードに追加しましたが、成功メッセージのログが表示されますが、通知はユーザーに送信されていません。過去の通知では送信されたことが示されますが、送信されたプッシュは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を記録し、ダッシュボードでのインストールでshowと同じです。
私は、これはそれが示した目標である詳細は、プッシュ通知をクリックした場合:そのクラスの Target details from push
編集
保存コード(それはJavaであります):
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
はい、そのユーザーがリクエストを行ったユーザーです。そのクラスを保存するためのコードを追加してください。私はあなたを助けるため、保存しているデータの種類はわかりません。 –