Parse platform Parse.com在afterSave中保存

Parse platform Parse.com在afterSave中保存,parse-platform,parse-cloud-code,Parse Platform,Parse Cloud Code,在解析云代码的某个类的afterSave中,我正在设置适当的ACL,然后再次保存相同的对象。我在afterSave方法中有一个推送通知,但在afterSave中执行save()会导致推送通知两到三次 我如何处理这种情况?有没有一种方法可以避免再次调用afterSave?思想?非常感谢您的帮助!谢谢 根据发送推送的时间/方式,您可以使用existed()方法来检查第一次保存类的特定实例。这就是我为生成推送通知的警报类所做的。您可以简单地执行以下操作: if (request.object.exis

在解析云代码的某个类的afterSave中,我正在设置适当的ACL,然后再次保存相同的对象。我在afterSave方法中有一个推送通知,但在afterSave中执行save()会导致推送通知两到三次


我如何处理这种情况?有没有一种方法可以避免再次调用afterSave?思想?非常感谢您的帮助!谢谢

根据发送推送的时间/方式,您可以使用
existed()
方法来检查第一次保存类的特定实例。这就是我为生成推送通知的警报类所做的。您可以简单地执行以下操作:

if (request.object.existed() === false) { 
    // It's a new object 
} else { 
    // It's an existing object
}

谢谢@mbm29414是的,但我也需要发送更新推送通知。只有当我只需要在创建时发送推送通知,而不需要在更新时发送推送通知时,您的解决方案才会起作用,对吗?@JohnDoe嗯,我的解决方案允许您区分新的/更新的项目。我一直在寻找我自己,但找不到任何方法来确定哪些字段是在
保存前更新的
保存后更新的
。为了区分我正在进行的“类型”保存,我所做的是添加状态标志字段。这样,您就不会阻止触发器,但也不会每次都执行相同的代码。因为我找不到更好的解决方案,所以我想我会采用标记的方法。谢谢@约翰多是的,我同意这有点像黑客。我认为Parse作为一个平台仍在发展。希望它们能使
在保存之前
在保存之后
更像SQL Server的触发器,在这里您可以访问对象的完整状态以及更改的内容。