Добавление объекта в PFRelation через облачный код

Я пытаюсь добавить объект в PFRelation в облачном коде. Я не очень хорошо разбираюсь в JS, но через несколько часов я сдался.

                    var relation = user.relation("habits");
                    relation.add(newHabit);

                    user.save().then(function(success) {
                        response.success("success!");
                    });

Я убедился, что user и habit являются допустимыми объектами, так что это не проблема. Кроме того, поскольку я редактирую PFUser, я использую мастер-ключ:

    Parse.Cloud.useMasterKey();

person espitia    schedule 07.08.2015    source источник


Ответы (1)


Пока не бросайте полотенце. На вероятную причину намекает имя переменной newHabit. Если он действительно новый, то это проблема. Объекты, сохраняемые в отношения, должны быть когда-то сохранены сами. Они не могут быть новыми.

So...

var user = // got the user somehow
var newHabit = // create the new habit
// save it, and use promises to keep the code organized
newHabit.save().then(function() {
    // newHabit is no longer new, so maybe that wasn't a great variable name
    var relation = user.relation("habits");
    relation.add(newHabit);

    return user.save();
}).then(function(success) {
    response.success(success);
}, function(error) {
    // you would have had a good hint if this line was here
    response.error(error);
});
person danh    schedule 07.08.2015