我的Android应用程序非常简单地爱它或讨厌评级系统。我正在使用Parse进行评级。
在查询Parse的评级数量以及将新的评级纳入解析方面,一切都很好。
我遇到的问题是:
我还没有找到Parse的方法来+1到一个数字列,所以我一直在做的是得到评级的当前值,+1到那个数字,然后使用Parse的Put方法把它写回来。
这似乎没问题但是如果2个用户在另一个用户之后1秒打开应用程序他们都看到评分是8,然后都点击+1,它将得到用户A的评级值(8),+ 1到8 = 9然后再写9。
1秒后,用户B做同样的事情,他们仍然将8的值存储在他们的设备上,所以他们的8 + 1 = 9,应该是10。
所以我的问题是:有没有办法在Parse中输入一个数字列?
如果不是,我会在用户评价之前添加getRatings方法,这样它应该获得最新值,但只是希望减少带宽。
感谢。
亚当
public void getRatings() {
//query to get love it/hate it from Parse
//we are only quering to get the first in background because we know there is only
//one we want
ParseQuery<ParseObject> query = ParseQuery.getQuery("ratings");
query.whereEqualTo("Id", id);
query.getFirstInBackground(new GetCallback<ParseObject>() {
@Override
public void done(ParseObject object, ParseException error) {
if (object != null) {
//if the show has been rated before
loveIt = object.getInt("loveIt");
hateIt = object.getInt("hateIt");
retreivedObject = object;
parseId = object.getObjectId();
//hide progress bar
mProgressBar.setVisibility(View.INVISIBLE);
}
else
{
//if the show has not been rated before
loveIt=0;
hateIt=0;
//hide progress bar
mProgressBar.setVisibility(View.INVISIBLE);
}
}
});
}