我在进行用户间推送通知时遇到了问题。我使用的是Parse后端,所有代码均为Swift语言编写。我可以无误地向服务器添加推送通知,但是当我尝试添加一个推送通知接收者时,却出现了错误,并且弹出了[PFFnternalUtils assertValidClassForQuery:]的提示。我知道这与我查询接收者的方式有关,但我不知道该如何解决。非常感谢您的帮助。以下是我的完整代码:
let message: NSString = responseMessage.text as NSString
var data = [ "title": "Some Title",
"alert": message]
var userQuery: PFQuery = PFUser.query()
userQuery.whereKey("objectId", equalTo: recipientObjectId)
var query: PFQuery = PFInstallation.query()
query.whereKey("currentUser", equalTo: userQuery)
var push: PFPush = PFPush()
push.setQuery(query)
push.setData(data)
push.sendPushInBackground()
这样做是有效的 如果我删除查询语句,代码仅通过向Parse发送推送通知即可工作:
let message: NSString = responseMessage.text as NSString
var data = [ "title": "Some Title",
"alert": message]
var push: PFPush = PFPush()
push.setData(data)
push.sendPushInBackground()
这是嫌疑代码
var userQuery: PFQuery = PFUser.query()
userQuery.whereKey("objectId", equalTo: recipientObjectId)
var query: PFQuery = PFInstallation.query()
query.whereKey("currentUser", equalTo: userQuery)
push.setQuery(query)
供参考
recipientObjectId是接收推送通知的用户的objectId,以NSString格式保存。
我的installation class中的"currentUser"键是指向拥有该安装的用户的指针。
编辑
忘了提供控制台输出。控制台输出显示:'NSInvalidArgumentException',原因是:“不能针对类型为PFQuery的查询进行比较查询”。