Question

I'm developing a kind of message application which is work on parse.com. My users and user's messages are on parse database. I want to delete one of user's all messages from parse, but i couldn't do it. I used a few methods for it like this but it doesn't works.

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();
                    }
                }
            });
Was it helpful?

Solution

Supposing that personSender field is being well used you can do the following to delete all messages sent by an user:

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());
        }
    }
});

OTHER TIPS

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");

        }
    });

Where Request is Class Name and oId is object Id, and make sure you have set the condition

ParseACL.setPublicWriteAccess(true);
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top