特定のオブジェクトの値が更新されたときに、ユーザーにプッシュ通知をトリガーする必要があります。
たとえば、To Do アプリで、ユーザーがクロック アラートを使用してタスクのリストを共有している場合、一部のユーザーのクロック アラートの時間が更新された場合、他のすべてのユーザーにプッシュ通知で通知する必要があります。
ありがとうございました。
乾杯
特定のオブジェクトの値が更新されたときに、ユーザーにプッシュ通知をトリガーする必要があります。
たとえば、To Do アプリで、ユーザーがクロック アラートを使用してタスクのリストを共有している場合、一部のユーザーのクロック アラートの時間が更新された場合、他のすべてのユーザーにプッシュ通知で通知する必要があります。
ありがとうございました。
乾杯
オブジェクトが更新されたら、Cloud Code を使用してプッシュをトリガーできます。afterSave
関係するすべてのユーザーに通知を送信するためのフックを調べたいと思うでしょう。
ただし、フックには落とし穴があります。フックはウォール クロック時間の 3 秒に制限されており、クエリを実行する必要があるユーザーの数によっては、十分でない場合があります。したがって、私の提案は、バックグラウンド ジョブによってクエリされる特別なテーブル (NotificationQueue と呼びましょう) にエントリを作成することです。バックグラウンド ジョブは最大 15 分間実行できます。
したがって、このテーブルを「ポーリング」して通知を送信する新しいイベントを探すバックグラウンド ジョブをスケジュールし、通知をユーザーに送信してから、たとえばこのテーブルからオブジェクトを削除します。
私のアプローチがどのように見えるかのいくつかの擬似コード
afterSave フック
Parse.Cloud.afterSave("YourObjectClass", function(req) {
// Logic to check if you should really send out a notification
// ...
var NotificationObject = Parse.Object.extend("NotificationQueue");
var notification = new NotificationObject();
notification.set("recipients", [..array of user objects/ids..]);
notification.save(null, {
success: function(savedObject) {
// New object saved, it should be picked up by the job then
},
error: function(object, error) {
// Handle the error
}
});
});
バックグラウンドジョブ
Parse.Cloud.job("sendNotifications", function(req,res) {
// setup the query to fetch new notification jobs
var query = new Parse.Query("NotificationQueue");
query.equalTo("sent", false);
query.find({
success: function(results) {
// Send out the notifications, see [1] and mark them as sent for example
},
error: function(error) {
// Handle error
}
});
// ...
});
[1] https://www.parse.com/docs/push_guide#sending/JavaScript
[2] https://www.parse.com/docs/cloud_code_guide#functions-aftersave
[3] https://www.parse .com/docs/cloud_code_guide#jobs