Я разрабатываю приложение, в котором есть страница чата. Я использую базу данных Firebase в реальном времени и мою структуру чата следующим образом: введите описание изображения здесь
Я получаю новые сообщения, как показано ниже:
fireBuddyChats = firebase.database().ref('/buddychats');
this.fireBuddyChats.child(this.currentUserId)
.child(this.buddy.uid)
.orderByKey()
.limitToLast(topMsgCount)
.on('value', (snapshot) => {
this.buddyMessages = [];
let temp = snapshot.val();
for(var tempKey in temp) {
this.buddyMessages.push(temp[tempKey]);
}
this.events.publish('newmessage');
}
Я слушаю событие 'newmessage', чтобы показать новое сообщение на странице чата. Проблема в следующем: когда я с кем-то болтаю, если другой друг отправляет какое-либо сообщение, запускается триггер базы данных (я упоминал выше), и на странице чата отображаются сообщения другого друга. Я думаю, это не должно срабатывать, потому что "this.buddy.uid" другой. Что мне не хватает? Есть предложения?