Mansuu....
Mansuu....

Reputation: 1226

Updating value in parse table

I am using parse.com cloud in my android application. i want to increase a field by one I tried using three ways.

first i tried getting object using parseQuery.get(id) but it gives no object found for update after using parseObject.increament().

ParseQuery<ParseObject> parseQuery = ParseQuery.getQuery("Waive");
        try {
            ParseObject object=parseQuery.get(id);

            object.increment("numberOfViews");


            object.saveInBackground(new SaveCallback() {

                @Override
                public void done(ParseException arg0) {
                    // TODO Auto-generated method stub
                    if(arg0==null){
                        Log.e("incremented", "by one");
                    }
                    else{
                        Log.e("not incremented", "by one");
                        arg0.printStackTrace();
                    }
                }
            });
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            Log.e("exception", e+"");
            e.printStackTrace();

        }

second way i used.i tried using ParseObject.increament but it gives no object found for update.

ParseQuery< ParseObject> query=new ParseQuery<ParseObject>("Waive");
        query.getInBackground(id, new GetCallback<ParseObject>() {

            @Override
            public void done(ParseObject object, ParseException e) {
                // TODO Auto-generated method stub
                Log.e("object id", object+"");
                if(e==null && object!=null){


                    object.increment("numberOfViews");
                    try {
                        object.save();
                    } catch (ParseException exp) {
                        // TODO Auto-generated catch block
                        Log.e("exception", exp.getMessage());
                        exp.printStackTrace();
                    }
                }

            }
        });
    }

third way i tried ,first of all i get the value of that field then increamented that value by one and inserted that value in table by using parseObject.put

ParseQuery< ParseObject> query=new ParseQuery("Waive"); query.getInBackground(id, new GetCallback() {

        @Override
        public void done(ParseObject object, ParseException e) {
            // TODO Auto-generated method stub
            Log.e("object id", object+"");
            if(e==null && object!=null){
                int tmp=(Integer)object.getNumber("numberOfViews");
                object.put("numberOfViews", tmp+1);
                try {
                    object.save();
                } catch (ParseException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                    Log.e("exception", e1.getMessage());
                    e1.printStackTrace();
                }


            }

        }
    });
}

but neither of these three is working please help me out.

Upvotes: 3

Views: 117

Answers (1)

Mansuu....
Mansuu....

Reputation: 1226

It is due to the permission issues. Because you are trying to update a value you are not authorized for. Make it public by editing your table security on parse.com make it public writable to update by another user too

Upvotes: 2

Related Questions