0
我尽力去完成什么:来自同一个表parse.com更新云代码的其他对象
- 用户可以保存到表中的位置,并把他们的主动/非活动。
表位置:
- 用户(指针到用户)
- 位置(地理)
- 活性(布尔)
情景的:
- 用户保存一个新的位置它会自动将该位置设置为 处于活动状态。其他人都应该被设置为无效。
- 用户将保存的位置设置为有效,自动将所有其他位置 设置为无效。
因此最终在位置表中,用户可以有多个位置,但只有1个可以同时处于活动状态。 我认为这是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);
}
});
}
});
猜猜发生了什么......所有对象都设置为false,我想我知道为什么...因为当你在cloudcode中保存一个对象时,它会在再次保存hook之前调用解析云?
有什么我可以做这件事或是我的逻辑错了吗?
@ cricket_007 typo :) – MichaelAngelo
好的,所以这不起作用?您是否发送活动地点?如果没有,你可以设置一个时间戳,并使用后保存功能将最近的位置设置为活动 –
@ cricket_007嗯,我真的不明白你在说什么..因为你仍然会在一个循环权 – MichaelAngelo