问题描述
推式通知在我的用户之间正常工作,但是,每当我从用户帐户发送消息时,收件人都不会收到推式通知(即使看起来发送到APNS也很好)。如果我使用手机上的另一个用户帐户登录,则可以很好地发送推送通知,但是一旦我重新登录自己的帐户,其他人就不会收到推送通知。
我的代码对我的用户没有什么不同。邮件可以很好地保存到数据库中(收件人可以手动刷新以在他们的应用程序上获取我的邮件-他们只是没有收到推送通知)。
有人以前有过类似经历吗?或有什么想法可以调试吗?
更新:发送推送的云功能
Parse.Cloud.define("sendPushToUser2",function(request,response) {
var senderUser = request.user;
var recipientUserId = request.params.recipientId;
var message = request.params.message;
if (message.length > 140) {
message = message.substring(0,137) + "...";
}
// Find devices associated with the recipient user
var recipientUser = new Parse.User();
recipientUser.id = recipientUserId;
var pushQuery = new Parse.Query(Parse.Installation);
pushQuery.equalTo("user",recipientUser);
// Send the push notification to results of the query
Parse.Push.send({
where: pushQuery,data: {
alert: senderUser.get("name"),badge: "Increment",message: message,title: senderUser.get("name"),senderObjId: senderUser,sound: "sounds.caf","content-available": 1
}
},{ success: function() {
console.log("PUSH SUCCESSFUL");
},error: function(error) {
console.log("PUSH ERROR" + error.message);
},useMasterKey: true});
});
解决方法
我的问题是我传递数据的这个对象“ senderObjId:senderUser ”非常大。它可能超出了有效负载限制。我实际上只需要该对象中的3个项目,而是通过这些项目,它开始起作用。该对象随着时间的推移不断建立,而我没有注意到,它仅影响在该对象中建立了很多东西的用户。
感谢您对@DaviMacêdo的帮助。