Когда использовать указатель и когда использовать ParseRelation в этом примере
Я изо всех сил стараюсь держать вещи прямо для примера chatRoom, над которым я работаю.
Дано: 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 входит в chatRoom, я буду следовать тем же шагам, что и когда UserA вошел в комнату. Но сделав это, я не перезаписал бы информацию об участнике UserA с UserB? ParseRelation кажется, что это был бы лучший выбор, потому что я могу добавлять / удалять пользователей; однако, поскольку может быть более 100 пользователей, у меня складывается впечатление, что указатели - это путь. Я открыт для предложений о том, как справиться с этим.
Альтернативой может быть подписка на канал при входе и отмена подписки при выходе. Это звучит замечательно, но я не уверен, как проверить, подписаны ли они уже.
1 ответ
Похоже, вы хотите использовать ParseRelation.
Для добавления в отношение используйте:
ParseRelation<ParseObject> relation = myChatRoom.getRelation("members");
relation.add(ParseUser.getCurrentUser());
Чтобы удалить отношение, используйте:
relation.remove(ParseUser.getCurrentUser());
Документация: