У меня есть приложение Firebase в реальном времени с чатами и комментариями.Комментарий принадлежит одному чату, а в чате может быть много комментариев.Я хотел бы получить только комментарии для данной комнаты, но сейчас я могу получить только все из них.
Каждый раз, когда комментарий сохраняется, я также сохраняю его идентификатор в комнате, в которуюЭто пренадлежит.Таким образом, в каждой комнате есть список идентификаторов комментариев.Я могу получить список идентификаторов комментариев в чате, используя chatRooms/${id}/commentIds
.
// data structure is basically like this:
chatRooms: {
ROOMID123: {
title: "Room A",
commentIds: {
COMMENTIDABC: true,
COMMENTIDXYZ: true
}
}
},
comments: {
COMMENTIDABC: {
message: "some message",
parentRoomId: ROOMID123
},
COMMENTIDXYZ: {
message: "Another message",
parentRoomId: ROOMID123
}
}
Я могу получить идентификаторы комментариев для данной комнаты на основе идентификатора комнаты, например:
firebase.database().ref(`chatRooms/${chatRoomId}/commentIds`).on('value',
snapshot => {
const commentsObject = snapshot.val();
const commentIdsList = Object.keys(commentsObject);
});
Было бы лучше для меня
а) использовать этот список commentIds, чтобы получить только комментарии для данной комнаты?Если да, то какой запрос мне следует использовать?
b) использовать идентификатор chatRoom для получения каждого комментария с совпадающим parentRoomId
?Если это так, я не знаю, как это сделать, несмотря на то, что вы прочитали документы.
Спасибо!