Parse platform 为什么保存事件在云代码中不起作用?
找到我的代码,下面的工作非常好。但我面临的唯一问题是“保存事件”对我不起作用。您也可以在图片中看到我的日志文件。在每种方法中,我都尝试了成功和错误函数,正如你们在图中看到的那个样,它们工作得很好。我试了很多次,但还是。。。这对我不起作用。 它总是显示错误消息Parse platform 为什么保存事件在云代码中不起作用?,parse-platform,parse-cloud-code,Parse Platform,Parse Cloud Code,找到我的代码,下面的工作非常好。但我面临的唯一问题是“保存事件”对我不起作用。您也可以在图片中看到我的日志文件。在每种方法中,我都尝试了成功和错误函数,正如你们在图中看到的那个样,它们工作得很好。我试了很多次,但还是。。。这对我不起作用。 它总是显示错误消息 Code : Parse.Cloud.afterSave("HouserDetailed", function(request, response) { var obj = request.object.id; //con
Code :
Parse.Cloud.afterSave("HouserDetailed", function(request, response)
{
var obj = request.object.id;
//console.log(obj);
// code !
var houserdetailed = new Parse.Object("HouserDetailed");
var query = new Parse.Query("HouserDetailed");
query.equalTo("objectId", obj);
query.first({
success: function(results) {
//alert("updates objectId " +request.object.id + " " + "input" + " "+ request.object.bet_title );
var bet_title = results.get("bet_title");
var match_id = results.get("match_id");
var level_coin = results.get("level_coin");
if(bet_title !== "false")
{
console.log("bet_title :- "+bet_title+", match_id:- "+match_id+", level_coin:- "+level_coin);
// nested query
var better = new Parse.Object("Better");
var query1 = new Parse.Query("Better");
query1.equalTo("match_id", match_id);
query1.first({
success: function(result){
var bet_title_better = result.get("bet_title");
var user_id = result.get("user_id");
var bet_OnNoOfticket = result.get("bet_OnNoOfticket");
var bet_price = result.get("bet_price");
var money_got = bet_OnNoOfticket * bet_price;
console.log("bet_title_better :-"+bet_title_better);
if(bet_title !== bet_title_better)
{
console.log("Condition does not match!");
}
else
{
console.log("Condition match!" + "money got :- "+money_got);
// checking for existing user in parse DB
var wallet = new Parse.Object("Wallet");
var query2 = new Parse.Query("Wallet");
query2.equalTo("user_id", user_id);
query2.first({
success: function(result)
{
console.log("User found");
var wallet_coins_number = result.get("wallet_coins_number");
var objectId = result.get("objectId");
total_amount = +wallet_coins_number + +money_got;
console.log("Total amount got :- " + total_amount );
// saving amount in wallet
var Wallet = Parse.Object.extend("Wallet");
var wallet = new Wallet();
wallet.set("user_id", user_id);
wallet.set("wallet_coins_number", total_amount);
wallet.save(null, {
success: function(wallet){
console.log("amount saved in wallet!");
},
error: function(wallet)
{
console.log("amount not saved in wallet!");
}
});
},
error: function(error)
{
console.log("User not found");
}
});
}
},error: function(error)
{
}
});
}
// nested query end
},
error: function(error) {
console.log("Error: " + error.code + " " + error.message);
}
});
// code !
});][1]][1]
我没有看到任何日志,可能它会告诉你出了什么问题。但您正试图用脏objectId保存现有的ParseObject,这是个坏主意。不允许更改现有对象的objectId。尝试从代码中删除wallet.set(“objectId”,objectId)
您也不应该使用result.get(“objectId”),而应该使用result.id。是的,我已经删除了它。但仍然没有保存数据。请将错误更改为
错误:函数(钱包,错误){console.log(“钱包中未保存的金额!错误:+error.message);}
,并在此处写入它告诉您的信息错误:钥匙钱包的类型无效\u硬币\u号码,需要字符串,但得到号码eah,这意味着Parse wallet类中的wallet\u coins\u number是string,您正在尝试将其设置为数字。。因此,您可以将钱包硬币号码列类型更改为数字,也可以更改wallet.set(“钱包硬币号码”,总金额)代码>至钱包.set(“钱包硬币号码”,总金额.toString())是的,这确实解决了我的问题。非常感谢你@David.:)