解析:+1到数字列进行评级

时间:2015-02-24 04:23:14

标签: android parse-platform

我的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);
            }
        }
    });
}

1 个答案:

答案 0 :(得分:3)

您需要使用计数器。请参阅下面的官方文档。

https://www.parse.com/docs/android_guide#objects-updating