我在我的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.
答案 0 :(得分:2)
这是由于许可问题。因为您尝试更新未经授权的值。通过在parse.com上编辑表安全性使其公开,使其公共可写以供其他用户更新