解析云代码修改其他类
Parse Cloud Code Modifying Other Classes
好的,所以我正在尝试使用 afterSave
函数来更改单独的 table 中的一些值。在我的设置中,第一个 table 中更改的对象知道第二个中的唯一字段。我觉得这个过程应该是:afterSave
-> 调用特定列的 get -> 使用它来查询第二个 table -> 设置找到的对象的字段。当我尝试这个时,没有任何改变。我真的很感激任何帮助。谢谢!
Parse.Cloud.afterSave("A", function(request){
var A_obj = request.object
if (A_obj.get("TriggerColumn") == "TriggerValue") {
var B = Parse.Object.extend("B")
var query = new Parse.Query(B)
query.equalTo("B_Data", A_obj.get("Known_B_Data"))
query.find({
success: function(b_array) {
var b = b_array[0]
b.set("B_Other_Data","New Data")
b.save()
}
})
}
})
您需要为您查询 A_obj
以获得它的值。因此,您的 if 条件必须始终返回 false。
首先查询您的A_obj
:
Parse.Cloud.afterSave("A", function(request){
var A_obj_query = new Parse.Query("A");
A_obj_query.get(request.object.id, {
success: function(A_obj) {
if (A_obj.get("TriggerColumn") == "TriggerValue") {
// ...
}
},
error: function(error) {
// ...
}
});
});
最好这样写你的代码:
Parse.Cloud.afterSave("A", function(request){
if (request.object.get("TriggerColumn") == "TriggerValue") {
var B = Parse.Object.extend("B");
var query = new Parse.Query(B);
query.equalTo("B_Data", request.object.get("Known_B_Data"));
return query.find().then(function(results_B) {
Parse.Promise.when(results_B.map(function(b) {
b.set("B_Other_Data","New Data");
b.save();
}));
});
}
})
我认为你唯一的错误是在这里:var b = b_array[0]
好的,所以我正在尝试使用 afterSave
函数来更改单独的 table 中的一些值。在我的设置中,第一个 table 中更改的对象知道第二个中的唯一字段。我觉得这个过程应该是:afterSave
-> 调用特定列的 get -> 使用它来查询第二个 table -> 设置找到的对象的字段。当我尝试这个时,没有任何改变。我真的很感激任何帮助。谢谢!
Parse.Cloud.afterSave("A", function(request){
var A_obj = request.object
if (A_obj.get("TriggerColumn") == "TriggerValue") {
var B = Parse.Object.extend("B")
var query = new Parse.Query(B)
query.equalTo("B_Data", A_obj.get("Known_B_Data"))
query.find({
success: function(b_array) {
var b = b_array[0]
b.set("B_Other_Data","New Data")
b.save()
}
})
}
})
您需要为您查询 A_obj
以获得它的值。因此,您的 if 条件必须始终返回 false。
首先查询您的A_obj
:
Parse.Cloud.afterSave("A", function(request){
var A_obj_query = new Parse.Query("A");
A_obj_query.get(request.object.id, {
success: function(A_obj) {
if (A_obj.get("TriggerColumn") == "TriggerValue") {
// ...
}
},
error: function(error) {
// ...
}
});
});
最好这样写你的代码:
Parse.Cloud.afterSave("A", function(request){
if (request.object.get("TriggerColumn") == "TriggerValue") {
var B = Parse.Object.extend("B");
var query = new Parse.Query(B);
query.equalTo("B_Data", request.object.get("Known_B_Data"));
return query.find().then(function(results_B) {
Parse.Promise.when(results_B.map(function(b) {
b.set("B_Other_Data","New Data");
b.save();
}));
});
}
})
我认为你唯一的错误是在这里:var b = b_array[0]