Parse.com Javascript
我有一些android代码,试图保存数据进行解析。我有一个parse cloud函数,它在beforeSave中向用户添加一个uid字段集。当我查看日志和数据浏览器时,我注意到有时会保存多达5个数据条目。我已经在调试器中运行了android代码,保存函数只调用一次 Android代码:Parse.com Javascript,javascript,parse-platform,Javascript,Parse Platform,我有一些android代码,试图保存数据进行解析。我有一个parse cloud函数,它在beforeSave中向用户添加一个uid字段集。当我查看日志和数据浏览器时,我注意到有时会保存多达5个数据条目。我已经在调试器中运行了android代码,保存函数只调用一次 Android代码: public void sendFileToParse(String name, byte[] data){ data_file = data; ParseFile file = new Pars
public void sendFileToParse(String name, byte[] data){
data_file = data;
ParseFile file = new ParseFile(name, data_file);
file.saveInBackground();
//associate a ParseFile onto a ParseObject
ParseObject post_data = new ParseObject("Files");
post_data.put("first", 0);
post_data.put("fileName", name);
post_data.put("file", file);
post_data.saveInBackground(new SaveCallback() {
public void done(ParseException e){
if (e == null){
Log.d("ParseFileTransfer", "Saved file successfully");
}
else{
Log.d("ParseFileTransfer", "Could not save file");
}
}
});
}
Javascript云代码
Parse.Cloud.beforeSave("Files", function(request, response) {
var user = request.user.id;
alert("In beforeSave");
if (user == null){
response.error("Users does not exist");
}
else{
request.object.set("uid",user);
request.object.save();
response.success();
}
});
知道为什么会发生这种情况吗?我从else语句中删除了request.object.save(),这似乎解决了问题。有点道理,但我不确定为什么保存的次数是随机的。我觉得这就像一个循环。您的
.beforeSave()
运行是因为您从客户端调用了save()
。然后,由于您有一个用户,它将在云中再次运行save
,触发该对象上的beforeSave()
。我认为错误数量的随机性和相似性取决于Parse是如何计算速率/限制或超时的,这是几秒钟的时间,也取决于服务器目前的紧张程度。这是一个明确的循环,Parse beforeSave操作在实际保存过程中只能运行15秒。