我正在努力为我正在研究的聊天室示例保持直截了当。
给定:UserA UserB 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 进入聊天室时,我将按照与 UserA 进入聊天室时相同的步骤进行操作。但是这样做,我不会用UserB覆盖UserA的成员信息吗?ParseRelation 似乎是一个更好的选择,因为我可以添加/删除用户;但是,由于可能有超过 100 个用户,我的印象是指针是要走的路。我愿意接受有关如何处理此问题的建议。
另一种方法是在他们进入频道时订阅他们,并在他们离开时取消订阅。听起来不错,但我不确定如何检查他们是否已经订阅。