查找Parse Relation Query中是否存在对象

时间:2015-03-22 21:15:59

标签: android parse-platform

我正在尝试将Parse用作我的应用程序的后端,我已经建立了一个"关系"两个对象之间(ParseUser和SingleWorkout)。在这个ParseUser对象中,我保留了一个名为" user_likes"的关系。和" user_favorites"并且这种关系保持SingleWorkout对象关系。

我希望能够看到ParseUser对象和SingleWorkout对象之间是否存在关系,以及它是否返回true / false。

以下是我编写的两个执行查询的方法,如果没有关系,我希望在回调中接收0,如果存在关系则为1,因为在特定的objectId上只能有1个关系。

问题是这个查询返回-1和0,有时它只会返回0.我如何调整查询以返回2个对象之间是否存在关系?

private void queryLikeRelation() {
    relation = currentUser.getRelation("user_likes");
    query = relation.getQuery();
    query.whereExists(currentSingleWorkout.getObjectId());
    query.countInBackground(new CountCallback() {
        @Override
        public void done(int i, ParseException e) {
            Log.e(TAG, i + "LIKE OBJECTS");
            if (i == -1){
                isStillLiked = true;
                ivLike.setImageResource(R.drawable.like_content_selector);
                isLikeChecked = true;
            } else {
                isStillLiked = false;
                ivLike.setImageResource(R.drawable.like_blank_content_selector);
                isLikeChecked = false;
            }
        }
    });

}

private void queryFavoriteRelation() {
    relation = currentUser.getRelation("user_favorites");
    query = relation.getQuery();
    query.whereExists(currentSingleWorkout.getObjectId());
    query.countInBackground(new CountCallback() {
        @Override
        public void done(int i, ParseException e) {
            Log.e(TAG, i + "FAVORITE OBJECTS");
            if (i == -1){
                isStillFavorited = true;
                ivFavorite.setImageResource(R.drawable.favorite_content_selector);
                isFavoriteChecked = true;
            } else {
                isStillFavorited = false;
                ivFavorite.setImageResource(R.drawable.favorite_blank_content_selector);
                isFavoriteChecked = false;
            }
        }
    });

0 个答案:

没有答案