解析对象不会删除

问题描述:

我使用解析为巴斯,我用下面的代码删除。但明天我才知道,这段代码是不工作的对象。解析对象不会删除

@Override 
     public void onClick(View view) { 
      new AlertDialog.Builder(context).setIcon(R.drawable.main).setTitle("Delete this product ?") 
        .setMessage("Are you sure you want to Delete this product ?").setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialogInterface, int i) { 



        ParseQuery<ParseObject> query = ParseQuery.getQuery("VendorInv"); 
        query.whereEqualTo("objectId", details.getObjectId()); 
        query.getFirstInBackground(new GetCallback<ParseObject>() { 
         @Override 
         public void done(ParseObject object, ParseException e) { 
          try { 
           object.delete();  // fixed part 
           object.saveInBackground(new SaveCallback() { // fixed part 
            @Override 
            public void done(ParseException e) { 

             if (e == null) { 
              vendorDetailsList.remove(position); 
              notifyItemRemoved(position); 
              notifyItemRangeChanged(position, vendorDetailsList.size()); 
              count.setText(String.valueOf(vendorDetailsList.size()) + "/" + totalNo + " items are Online"); 
              Toast.makeText(context, "Deleted", Toast.LENGTH_SHORT).show(); 
             } 
            } 
           }); 
          } catch (ParseException e1) { 
           Log.i("sand", e1.toString()); 
          } 
         } 
        }); 
       } 

      }).setNegativeButton("No", null).show(); 


     } 

    }); 

} 

然后,当解析机器人的贡献者所述比我固定下方的这部分代码

holder.cross.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View view) { 
       new AlertDialog.Builder(context).setIcon(R.drawable.main).setTitle("Delete this product ?") 
         .setMessage("Are you sure you want to Delete this product ?").setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialogInterface, int i) { 


         ParseQuery<ParseObject> query = ParseQuery.getQuery("VendorInv"); 
         query.whereEqualTo("objectId", vendorDetailsList.get(position).getObjectId()); 
         query.getFirstInBackground(new GetCallback<ParseObject>() { 
          @Override 
          public void done(ParseObject object, ParseException e) { 
/* this part is changed */        object.deleteInBackground(new DeleteCallback() { 
            @Override 
            public void done(ParseException e) { 
             if (e == null) { 
              Log.i("sand", vendorDetailsList.get(position).getObjectId()); 
              vendorDetailsList.remove(position); 
              notifyItemRemoved(position); 
              notifyItemRangeChanged(position, vendorDetailsList.size()); 
              count.setText(String.valueOf(vendorDetailsList.size()) + "/" + totalNo + " items are Online"); 
              Toast.makeText(context, "Deleted", Toast.LENGTH_SHORT).show(); 
             } else { 
              Toast.makeText(context, "Not Deleted please check your network connection", Toast.LENGTH_SHORT).show(); 
             } 
            } 
           }); 

          } 
         }); 


        } 

       }).setNegativeButton("No", null).show(); 


      } 

     }); 

吐司是印刷删除,但仍然在对象数据库不会被删除。 我不知道我要去的地方错了,但是这并没有帮助我在删除对象 任何帮助,将不胜感激

+0

是parse.com仍在运行。正如我很久以前看过这篇文章http://blog.parse.com/announcements/a-parse-shutdown-reminder/其即将关闭的时候。 –

+0

现在它的开源,我正在使用heroku作为后端。所以是的,它仍然在工作 –

配置您的VendorInv类在服务器上是“公共的读取和写入启用” 和使用下面的代码:

ParseQuery<ParseObject> query = ParseQuery.getQuery("VendorInv"); 
    query.getInBackground(vendorDetailsList.get(position).getObjectId(), new GetCallback<ParseObject>() { 
     @Override 
     public void done(ParseObject object, ParseException e) { 
      if (object != null) { 
       object.deleteInBackground(new DeleteCallback() { 
        @Override 
        public void done(ParseException e) { 
         if (e == null) { 
          Log.i("sand", vendorDetailsList.get(position).getObjectId()); 
          vendorDetailsList.remove(position); 
          notifyItemRemoved(position); 
          notifyItemRangeChanged(position, vendorDetailsList.size()); 
          count.setText(String.valueOf(vendorDetailsList.size()) + "/" + totalNo + " items are Online"); 
          Toast.makeText(context, "Deleted", Toast.LENGTH_SHORT).show(); 
         } else { 
          Toast.makeText(context, "Not Deleted please check your network connection", Toast.LENGTH_SHORT).show(); 
         } 
        } 
       }); 
      } 
     } 
    }); 
+0

我已经使用了这个,它也打印吐司“已删除”。但它没有在数据库中删除。任何猜测都可以是因为ACL,但我现在已经设置为公开 –

+0

然后我猜在服务器端有一些问题 – Sergey

+0

很抱歉,我的错误是,有一个错误, '2017-08-25T07:13:22.134Z - 对类VendorInv的操作删除的权限被拒绝。 2017-08-25T07:13:22.128Z - 错误产生响应。 ParseError { 代码:119, 消息: '权限被拒绝采取行动删除类VendorInv。' }' –