我正忙着为聊天室做准备,我正在努力工作。
给定: 用户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个用户,我得到的印象是指针是要走的路。我对如何处理这个问题提出了建议。
替代方案是在进入时订阅他们的频道,并在他们离开时取消订阅。这听起来不错,但我不确定如何检查它们是否已经订阅。
答案 0 :(得分:0)
听起来你想要使用ParseRelation。
要添加到关系,请使用:
ParseRelation<ParseObject> relation = myChatRoom.getRelation("members");
relation.add(ParseUser.getCurrentUser());
删除关系使用:
relation.remove(ParseUser.getCurrentUser());
文档: