Push notification 解析服务器云代码持续发送推送通知

Push notification 解析服务器云代码持续发送推送通知,push-notification,parse-server,parse-cloud-code,Push Notification,Parse Server,Parse Cloud Code,我开发了一个应用程序,它使用解析服务器云代码发送推送通知。这些通知在设备中正确接收,但数小时后,它们会自动从解析服务器再次发送(并再次接收)。对于每个推送通知,这种情况会发生3到4次 如果推送通知是从Parse Dashboard发送的,那么它们只发送一次,所以这似乎是我的云代码的问题 这是我的代码: Parse.Cloud.define("sendPushNotification", function(request, response) { var userId = requ

我开发了一个应用程序,它使用解析服务器云代码发送推送通知。这些通知在设备中正确接收,但数小时后,它们会自动从解析服务器再次发送(并再次接收)。对于每个推送通知,这种情况会发生3到4次

如果推送通知是从Parse Dashboard发送的,那么它们只发送一次,所以这似乎是我的云代码的问题

这是我的代码:

Parse.Cloud.define("sendPushNotification", function(request, response) {
        var userId = request.params.userId;
        var message = request.params.message;
        var queryUser = new Parse.Query(Parse.User);
        queryUser.equalTo('objectId', userId);
        var query = new Parse.Query(Parse.Installation);
        query.matchesQuery('user', queryUser);

        Parse.Push.send({
          where: query,
          data: {
            alert: message,
            badge: 0,
            sound: 'default'
          }
        }, {
          success: function() {
            console.log('##### PUSH OK');
            response.success();
          },
          error: function(error) {
            console.log('##### PUSH ERROR');
            response.error('ERROR');
          },
          useMasterKey: true
        });
});
我在从另一个云代码函数发送电子邮件时遇到了类似的问题(问题中未包含),我的问题是因为我忘记添加响应。success();和响应。错误(“错误”);方法。 所以这一次我肯定会在“sendPushNotification”方法的响应中包含这两个调用

发送推送通知后,日志显示:

2017-07-09T15:38:02.427Z - Ran cloud function sendPushNotification for user undefined with:
Input: {"message":"This is my message","userId":"myUserIdInParse"}
Result: undefined
我认为这个“Result:undefined”可能与问题有关,因为不调用success和error函数


此代码可能有什么问题?当设备正确接收到通知时,为什么代码没有收到成功消息?

结果:未定义的
只是因为您没有在
response.success()中放入任何内容。如果添加一个将显示为结果的
“Push Sent!”
。我看到的唯一奇怪的事情是你有
,useMasterKey:true
,而我总是在字典中看到/使用该选项,
,{useMasterKey:true}
,尽管我不知道这会如何导致函数在数小时后再次运行。你有日志在运行吗?函数是否以某种方式再次被调用?你是否打开了设备上的推送通知并再次收到它,或者它实际上只是一个未打开通知的警报?嗯,如果我将response.success(“push Sent!”)或{userMasterKey:true}放入response.success(“push Sent!”)或{userMasterKey:true}我无法访问我的服务器,因此我猜是语法错误。如果我撤销这两个更改,我可以再次访问我的服务器。这是
console.log('打印?否。打印的唯一内容是:运行云函数sendPushNotification for user undefined with:Input:{“message”:“This is my message”,“userId”:“myUserIdInParse”}结果:undefined