Updating a value in a parse table

I am using parse.com cloud in my android app. I want to increase the field by one. I tried three ways.

I first tried to get the object using parseQuery.get (id), but it doesn't detect the object to 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 to use ParseObject.increament but it didn't find object to 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();
                    }
                }

            }
        });
    }

      

The third way I tried, first of all I get the value of this field, then incremented that value by one and inserted that value into the table using parseObject.put

ParseQuery <ParseObject> query = new ParseQuery ("Denied"); 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.

      

+3


source to share


1 answer


It has to do with permissions. Since you are trying to update a value that you are not authorized to. Make it public by editing your table security on parse.com, make it publicly writable for another user to update.



+2


source







All Articles