Parse.com Javascript

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

我有一些android代码,试图保存数据进行解析。我有一个parse cloud函数,它在beforeSave中向用户添加一个uid字段集。当我查看日志和数据浏览器时,我注意到有时会保存多达5个数据条目。我已经在调试器中运行了android代码,保存函数只调用一次

Android代码:

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秒。