【问题标题】:Parse cloud push notifications are pushing to all users instead of targeted user解析云推送通知正在推送给所有用户而不是目标用户
【发布时间】:2015-08-05 14:46:41
【问题描述】:

我无法将推送通知定位到单个用户。现在,无论哪个用户登录到设备,我的测试设备都会收到推送通知。即使我向当前已注销的 _User 发送推送并且设备使用完全不同的 _User 登录,它也会收到推送通知。

我已经使用 parse.com 设置了云代码,以便将推送通知发送给用户。我在安装类中有一个“用户”指针,它指向要接收推送通知的相应 _User。

示例:_用户“Sam”登录到移动设备。我从 Xcode 中的 iOS 模拟器向 _User "steve" 发送推送。即使“Sam”已登录,移动设备也会收到推送。即使没有用户登录,它也会收到推送。

当我在解析时检查 Push 控件时,似乎云云正在正确查询安装中与 _User 类的 objectId 匹配的“用户”指针,如下所示:

user advanced operator ($inQuery {"className"=>"_User", "objectId"=>"LJQXaJDzkU"}) 
SENDING TIME
August 5th, 2015 at 3:01 PM

EXPIRATION
None

FULL TARGET
{ 
  "user": { 
    "$inQuery": { 
      "className": "_User", 
      "objectId": "LJQXaJDzkU" 
    } 
  } 
}

FULL DATA

这是查询用户并从解析云发送推送的云代码。 recipientUserId 接收到正在接收推送的 _User 的 objectId 字符串。

Parse.Cloud.define("sendPush", function(request, response) {
	var senderUser = request.user
	var recipientUserId = request.params.recipientId;
	var senderUserId = request.params.senderId;
    var message = senderUserId + " sent a message"
  
  	var recipientUser = new Parse.User();
	recipientUser.id = recipientUserId;
	var pushQuery = new Parse.Query(Parse.Installation);
	pushQuery.matchesQuery('user', recipientUser);
	
	Parse.Push.send ({
		where: pushQuery,
		data: {
			aps: {
				alert: message,
				badge: "Increment",
				sound: "cow-moo1.wav"
			}
		}
	}, {
		success: function() {
		response.success("Success!");
	}, 
		error: function(error) {
		response.error(error);
	}
	
	});
	
});

推送发送没有问题,我可以在设备上打开它们,但我真的不知道为什么推送被发送到设备,即使查询的用户甚至没有登录到设备。任何关于正在发生的事情的想法将不胜感激。谢谢!!!

【问题讨论】:

    标签: ios json parse-platform push-notification parse-cloud-code


    【解决方案1】:

    编辑您的代码,以便在您注销时将用户从安装中删除。

    编辑 - 这在下面的 cmets 中提到过,所以我想确保在这里提到它,以防它是有效的解决方案。 OP 使用了matchesQuery,它需要传入一个查询,而是传入一个Parse.User 对象。我建议他使用 equalTo 而不是 matchesQuery。

    【讨论】:

    • 我已经在注销方法中有这个。每当用户注销时安装就会清除,并在新用户登录时重置。
    • 我会验证这实际上是按照您认为的方式发生的。如果没有安装仍然有用户附加到它,您的云代码不应从查询中返回安装。附带说明一下,您将 Parse.User 传递给 matchesQuery 而不是查询。请尝试 equalTo。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多