用户没有收到我的推送通知
Users Not Receiving Push Notifications Just From Me
我有一个消息传递应用程序,我使用 Parse 服务器作为我的后端。
推送通知在我的用户之间工作得很好,但是每当我从我的用户帐户发送消息时,收件人都不会收到推送通知(即使它看起来像是很好地传送到 APNS)。如果我在我的 phone 上使用另一个用户帐户登录,推送通知可以正常发送,但是一旦我重新登录到我自己的帐户,其他人就收不到推送通知。
我的代码对我的用户和其他人没有任何不同。消息很好地保存到数据库中(收件人可以手动刷新以在他们的应用程序上获取我的消息 - 他们只是没有收到推送通知)。
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。
我有一个消息传递应用程序,我使用 Parse 服务器作为我的后端。
推送通知在我的用户之间工作得很好,但是每当我从我的用户帐户发送消息时,收件人都不会收到推送通知(即使它看起来像是很好地传送到 APNS)。如果我在我的 phone 上使用另一个用户帐户登录,推送通知可以正常发送,但是一旦我重新登录到我自己的帐户,其他人就收不到推送通知。
我的代码对我的用户和其他人没有任何不同。消息很好地保存到数据库中(收件人可以手动刷新以在他们的应用程序上获取我的消息 - 他们只是没有收到推送通知)。
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。