何时使用指针以及何时在此示例中使用ParseRelation

时间:2014-05-22 04:40:52

标签: android parse-platform parserelation

我正忙着为聊天室做准备,我正在努力工作。

给定: 用户A 用户B ChatRoom01

在此示例中,当UserA进入ChatRoom01时,我想在两者之间创建关联。现在,由于ChatRoom01已经存在,我可以通过执行以下操作来获取对象:

ParseQuery<ParseObject> query = ParseQuery.getQuery("ChatRoom");
        query.getInBackground(getIntent().getStringExtra("chatRoom"), new GetCallback<ParseObject>() {
            @Override
            public void done(ParseObject chatRoom, ParseException e) {
                if(e == null){
                    // we found the object
                    myChatRoom = chatRoom;
                    // set the activity's title
                    setTitle(myChatRoom.getString("name"));
                }else{
                    // aww sh!t. can't find it
                }
            }
        });

如果我要使用指针,我会做类似的事情:

myChatRoom.put("member", ParseUser.getCurrentUser());

当用户离开房间时,我想删除该关联。我在想:

myChatRoom.remove("member");

会从会议室中删除会员协会。这不是我想要做的。我该如何做到这一点?

如果事实证明指针是理想的解决方案,当UserB进入chatRoom时,我将按照UserA进入房间时的步骤进行操作。但通过这样做,我不会用UserB覆盖UserA的会员信息吗? ParseRelation似乎是一个更好的选择,因为我可以添加/删除用户;但是,由于可能有超过100个用户,我得到的印象是指针是要走的路。我对如何处理这个问题提出了建议。

替代方案是在进入时订阅他们的频道,并在他们离开时取消订阅。这听起来不错,但我不确定如何检查它们是否已经订阅。

1 个答案:

答案 0 :(得分:0)

听起来你想要使用ParseRelation。

要添加到关系,请使用:

ParseRelation<ParseObject> relation = myChatRoom.getRelation("members");
relation.add(ParseUser.getCurrentUser());

删除关系使用:

relation.remove(ParseUser.getCurrentUser());

文档:

Relations Guide

API Reference