【问题标题】:Parse.com Saving in afterSaveParse.com 保存在 afterSave
【发布时间】:2014-11-01 23:57:36
【问题描述】:

在 Parse Cloud Code 中某个类的 afterSave 中,我设置了适当的 ACL,然后再次保存相同的对象。我在 afterSave 方法中有一个推送通知,但是在 afterSave 中执行 save() 我认为会导致通知被推送两次或三次。

我该如何处理这种情况?有没有办法保存这样 afterSave 不会再次被调用?想法?非常感谢您的帮助!谢谢!

【问题讨论】:

    标签: parse-platform parse-cloud-code


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢@mbm29414 是的,但我还需要发送更新推送通知。仅当我需要仅在创建时而不是在更新时发送推送通知时,您的解决方案才有效,对吗?
    • @JohnDoe 好吧,我的解决方案允许您区分新的/更新的项目。我一直在寻找自己,但找不到任何方法来确定在beforeSave 或afterSave 中更新了哪些字段。我所做的区分我正在做的“种类”保存是添加状态标志字段。这样,您不会阻止触发器,但不会每次都执行相同的代码。
    • 因为我找不到更好的解决方案,我想我会采用标记的想法。谢谢!
    • @JohnDoe 是的,我同意这有点骇人听闻。我认为 Parse 作为一个平台仍在成长。希望他们能让beforeSave 和afterSave 更像SQL Server 的触发器,您可以在其中访问对象的完整状态以及更改的内容。
    猜你喜欢
    • 2016-05-24
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多