我开发了一款使用Parse Server Cloud代码发送推送通知的应用。这些通知在设备中正确接收,但几小时后它们会再次从Parse Server自动发送(并再次收到它们)。每次推送通知都会发生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
});
});
我有一个类似的问题从另一个云代码函数发送电子邮件(未包含在问题中),我的问题是因为我忘了添加response.success();和response.error('ERROR');方法。 所以这次我肯定会在“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
我认为这个“结果:未定义”可能与问题有关,因为不会调用成功和错误函数。
这段代码有什么问题?为什么在设备中正确接收通知时代码没有收到成功()?