Я новичок в Parse Cloud Code .. однако я пытаюсь что-то теоретически должно быть прямолинейным, и я не могу понять, почему это не сработает!Почему код облачного секса для сохранения кода сохраняет один объект, но не другой?
в моем классе User я есть массив playableFriends, когда я создать объект игры Я желаю, чтобы удалить игрока и противника с каждого других playableFriends массива
Код для удаления соперника из игроков массива работает. но по какой-то причине неизвестный мне код для удаления игрока из массива противников не ... даже если это единственный исполняемый код.
У меня есть выход проигрыватель и противник объекты в консоль, чтобы гарантировать, что они существуют, и я также попытался с помощью команды выборки на сопернике, но это не сработало ни
Parse.Cloud.afterSave("Game",function(request, response){
//return if existing game
if (request.object.existed()){
return;
}
//get player
var player = request.object.get("playerIdle");
//get opponent
var opponent = request.object.get("playerTurn");
//remove opponent as playable friend
player.remove("playableFriends", opponent);
//remove player as opponents playable friend
opponent.remove("playableFriends", player);
player.save();
opponent.save();
});
любой помощь будет в значительной степени оценили
приветы Byron
Спасибо Тодду за потрясающий ответ! Я люблю Promises .. много читал и реализовал их, как вам было рекомендовано. Проблема все еще возникает, хотя теперь я смог вывести сообщение об ошибке из обещания (error.message) и оказалось, что он терпит неудачу, потому что сеанс/token требуется, чтобы изменить противника. UserCannotBeAlteredWithoutSessionError – Byron
Похоже, вам нужно использовать мастер-ключ, чтобы обойти ACL на противнике. Попробуйте поставить 'Parse.Cloud.useMasterKey();' в верхней части вашей функции. – toddg
Parse только позволяет изменять пользовательские объекты вошедшим в систему пользователем. Я смог использовать главный ключ, чтобы переопределить эту проверку. enemy.save (null, {useMasterKey: true}); – Byron