更新解析表中的值

时间:2015-06-18 10:36:41

标签: parse-platform

我在我的Android应用程序中使用parse.com云。我想把一个字段增加一个      我尝试过三种方式。

首先我尝试使用parseQuery.get(id)获取对象,但是在使用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();

        }

我使用的第二种方式。我尝试使用ParseObject.increament但它没有找到更新的对象。

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

            }
        });
    }

我尝试的第三种方式,首先我得到该字段的值然后将该值增加1并使用parseObject.put将该值插入表中

ParseQuery&LT;的parseObject&GT; 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.

1 个答案:

答案 0 :(得分:2)

这是由于许可问题。因为您尝试更新未经授权的值。通过在parse.com上编辑表安全性使其公开,使其公共可写以供其他用户更新