2014-03-04 35 views
1

我正在开发一种在parse.com上工作的消息应用程序。我的用户和用户的消息在解析数据库上。我想从解析中删除用户的所有消息之一,但我无法做到。我使用了一些这样的方法,但它不起作用。解析com在android应用程序上删除数据库

ParseObject msgObject; 
public void DeleteAllUserMessage(String sender){ 

      ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("Messages"); 
      query.whereEqualTo("personSender",sender); 
      msgObj.createWithoutData("Messages", sender).deleteEventually(new DeleteCallback() { 

       @Override 
       public void done(ParseException e) { 
        // TODO Auto-generated method stub 
        try { 
         msgObj.delete(); 
        } catch (ParseException e1) { 
         // TODO Auto-generated catch block 
         e1.printStackTrace(); 
        } 
       } 
      }); 

回答

1

假设personSender领域正在被很好用的,你可以做以下命令来删除由用户发送的所有消息:

String sender = "-> This is the user that sent the messages <-"; 

ParseQuery<ParseObject> query = ParseQuery.getQuery("Messages"); 
query.whereEqualTo("personSender", sender); 
query.findInBackground(new FindCallback<ParseObject>() { 
    public void done(List<ParseObject> messages, ParseException e) { 
     if (e == null) { 
      // remove all messages at once 
      try { 
       ParseObject.delete(messages); 
      }catch(ParseException pe) { pe.printStackTrace(); } 

      // OR (do not use both!) 

      // iterate over all messages and delete them 
      for(ParseObject message : messages) 
      { 
       message.deleteEventually(); 
      } 
     } else { 
      Log.d("Semothing went wrong. Show useful message based on ParseException data", e.getMessage()); 
     } 
    } 
}); 
+0

com.parse.ParseException:object n找到了删除例外,但在我的Messages类中,有10条消息给“john”用户 –

+0

print'sender'变量给控制台并查看它是否正确。还请确保您的用户已登录。 – letiagoalves

+0

我解决了问题,有一个用户权限ACL是错误的。我添加了defaultACL.setPublicWriteAccess(true); 它工作正常。感谢bro –

1
reject.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      //for rejecting and deleting the request 
      Log.i("MSG", "On click Reject"); 
      ParseObject.createWithoutData("Request", oId).deleteEventually(); 
      Log.i("MSG", "Successfully deleted the request"); 

     } 
    }); 

哪里Request是类名和oId是对象ID,并确保已设置条件

ParseACL.setPublicWriteAccess(true); 
相关问题