【问题标题】:afterSave member Parse Cloud Code not savingafterSave 成员解析云代码不保存
【发布时间】:2015-11-19 01:34:42
【问题描述】:

我正在尝试在用户注册到 Parse 中的 Runner 类后保存用户名和 userId。由于某种原因,信息没有保存,我没有收到错误。谁能给点建议?

Parse.Cloud.afterSave(Parse.User, function(request){
if(!request.object.existed()){
    var RunnerClass = Parse.Object.extend("Runner");
    var runner = new RunnerClass();
    runner.set("username", request.object.get("username"));
    runner.set("userId", request.object.id);

    runner.save();

    }

    });

【问题讨论】:

    标签: javascript parse-platform parse-cloud-code after-save


    【解决方案1】:

    您的 afterSave 定义不正确。 afterSave 没有响应。仅在 beforeSave 上。

    Parse.Cloud.afterSave(Parse.User, function(request) {
    ...
    
    }
    

    【讨论】:

    • 我做了更改,但仍然没有保存
    • 您是否尝试过在您的代码中添加一条日志语句,以便您可以看到它实际上正在运行?
    【解决方案2】:

    您必须避免在您的afterSave 触发器中使用request.object.existed(),因为它目前总是返回false。不幸的是,这是由于 Parse Cloud 中的一个已知错误尚未修复。相反,您必须使用错误报告讨论中给出的解决方法:https://developers.facebook.com/bugs/1675561372679121/

    解决方法是将request.object.existed() 替换为afterSave 中的以下布尔值:

    var objectExisted = (request.object.get("createdAt").getTime() != request.object.get("updatedAt").getTime());
    

    还要确保在您的代码中使用request.user 而不是request.object

    【讨论】:

    • 哦,我没有 Facebook,该链接要求我登录
    猜你喜欢
    • 1970-01-01
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 2016-12-22
    相关资源
    最近更新 更多