То, что я пытаюсь выполнить:Обновление других объектов в облаке кода из одной таблицы parse.com
- Пользователь может сохранить места в таблицу и поместить их на активный/неактивный.
Таблица Расположение:
- пользователь (указатель на пользователя)
- место (геоданных)
- активен (BOOL)
Сценарий-х:
- Пользователь сохраняет новое местоположение он автоматически устанавливает это положение в активным. Все должны быть настроены на неактивные.
- Пользователь устанавливает сохраненное местоположение в активное, автоматически все остальные местоположения должно быть установлено как неактивное.
Таким образом, в конце таблицы местоположения пользователь может иметь много местоположений, но только одно может быть активным одновременно. Я думал, что это прекрасная вещь для cloudcode
Я положил это в cloudcode, как BeforeSave:
Parse.Cloud.beforeSave("Location", function(request, response) {
var query = new Parse.Query("Location");
query.equalTo("user", request.object.get("user"));
query.equalTo("active", true);
query.find({
success: function(results) {
//get all objects in the table and set the active property to false
for (var i = 0; i < results.length; i++) {
var object = results[i];
object.set('active',false);
object.save();
}
response.success();
},
error: function(error) {
response.error(error.message);
}
});
}
});
Угадайте, что происходит ... Все объекты устанавливаются в ложь, и я думаю, что я знаю, почему ... потому что, когда вы сохраняете объект в cloudcode, он вызовет облако синтаксиса, прежде чем снова сохранить крюк?
Есть ли что-то, что я могу сделать по этому поводу или это моя логика, просто неправильно?
@ cricket_007 typo :) – MichaelAngelo
Хорошо, так что это не работает? Вы отправляете Активное местоположение? Если нет, вы можете установить временную метку и использовать функцию после сохранения, чтобы установить последнее место на активный –
@ cricket_007 хм, я действительно не понимаю, что вы говорите .. потому что вы все равно будете в петле справа – MichaelAngelo