0

I am attempting to save a username and userId after a user registers into a Runner Class within Parse. For some reason the information is not saving and I am not receiving an error. Can anyone give some advice?

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();

    }

    });
Ace
  • 603
  • 2
  • 15
  • 33

2 Answers2

0

Your afterSave is incorrectly defined. There is no response for afterSave. Only on beforeSave.

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

}
Marius Waldal
  • 9,537
  • 4
  • 30
  • 44
0

You have to avoid using request.object.existed() in your afterSave trigger because it currently always returns false. This is unfortunately due to a known bug in Parse Cloud which is yet to be fixed. Instead you have to use the workaround given here in the bug report discussion: https://developers.facebook.com/bugs/1675561372679121/

The workaround is to replace request.object.existed() with the following boolean in your afterSave:

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

Also make sure to use request.user instead of request.object in your code

Mo Nazemi
  • 2,618
  • 2
  • 16
  • 23