在云功能中执行多次删除

时间:2016-01-02 11:50:56

标签: android parse-platform cloud-code

我尝试对用户上传的图片执行删除调用,用户也应该能够删除他们的文件。所以我在我的android代码中创建了一个调用云函数的按钮:

 Parse.Cloud.define("deleteFile1", function(request, response) {

  var fileName = request.params.image1;

  if (!fileName) {
    response.error("Filename is not defined");
  } else {
      Parse.Cloud.httpRequest({
        method: 'DELETE',
        url: 'https://api.parse.com/1/files/' + fileName,
        headers: {
          'X-Parse-Application-Id': '***',
          'X-Parse-Master-Key': '***'
        },
        success: function(httpResponse) {
          response.success(httpResponse.text);
        },
        error: function(httpResponse) {
          response.error("Request failed: " + httpResponse.text);
        }
      });
  }
});

现在这显然不会起作用,我需要先删除与之相关的对象。至少我是如何理解删除过程的。 如果是这样,我如何先执行,删除文件的对象,然后删除文件本身?

我可以运行object.remove(" objectThatHoldsFile");并执行saveCallBack。执行保存后,我可以运行云功能来删除文件吗?或者必须按顺序在同一个云功能中处理这两个部分?

提前致谢!

1 个答案:

答案 0 :(得分:1)

  Parse.Cloud.useMasterKey();
  var query = new Parse.Query("myClazz");

  query.get("xWMyZ4YEGZ").then(function(myClazz) {
     _class = myClazz;
     return _class.destroy()
   }
).then(function(fileName) {
      Parse.Cloud.httpRequest({
        method: 'DELETE',
        url: 'https://api.parse.com/1/files/' + fileName,
        headers: {
          'X-Parse-Application-Id': '***',
          'X-Parse-Master-Key': '***'
        } } ) } )
  .then(function(success) {
    // The related objClazz and file were deleted
  }, function(error) {
    console.error("Error deleting related comments " + error.code + ": " + error.message);
  });