在Mac / iOS上使用Parse时,我正在尝试设计一种同步策略。推送本地更改非常容易,但是我不确定如何从Parse中获取最新的PFObject
更改。
我来自CloudKit,您可以在其中订阅记录更改。当您保存内容时,其他设备会收到后台推送通知,让他们知道记录已更改(以及CKRecordID
是什么),以便您可以获取并更新数据。
我想在Parse上做类似的事情。我一直在阅读文档,对此一无所获。我知道我可以查询PFObjects
并发送推送通知,但是我看不到用于发送对象更改推送的特定应用程序。
我是否必须使用 Cloud Code 设置一个afterSave
挂钩?从我阅读的内容中,我可以像这样进行一个类级的钩子:
Parse.Cloud.afterSave("Project", function(request) {
//...
})
但是有没有办法在对象级别执行此操作?还是至少可以将更改后的objectId
包含在推送通知有效负载中?
答案 0 :(得分:1)
答案是肯定的。 您应该使用afterSave(或beforeSave)来触发其他客户端的功能(在这种情况下,发送推送通知)。
例如:
Parse.Cloud.afterSave("Project", function(request) {
if (request.original){
// meaning this is an update to the object.
myPushHandler.push({updatedprojectId:request.object.id});
} else {
// the first time this object is created.
}
})
注意:您还可以使用解析LiveQuery代替推送通知。 Parse Live Query