Skip to content

Commit 6f5fce7

Browse files
committed
(fix) duplicate listeners
1 parent 958eabc commit 6f5fce7

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

demo/src/ChatContainer.vue

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -246,24 +246,27 @@ export default {
246246
})
247247
248248
this.rooms = this.rooms.concat(formattedRooms)
249-
this.rooms.map((room, index) => this.listenLastMessage(room, index))
249+
formattedRooms.map(room => this.listenLastMessage(room))
250250
251251
if (!this.rooms.length) this.loadingRooms = false
252252
253-
this.listenUsersOnlineStatus()
253+
this.listenUsersOnlineStatus(formattedRooms)
254254
this.listenRoomsTypingUsers(query)
255255
// setTimeout(() => console.log('TOTAL', this.dbRequestCount), 2000)
256256
},
257257
258-
listenLastMessage(room, index) {
258+
listenLastMessage(room) {
259259
const listener = messagesRef(room.roomId)
260260
.orderBy('timestamp', 'desc')
261261
.limit(1)
262262
.onSnapshot(messages => {
263263
// this.incrementDbCounter('Listen Last Room Message', messages.size)
264264
messages.forEach(message => {
265265
const lastMessage = this.formatLastMessage(message.data())
266-
this.rooms[index].lastMessage = lastMessage
266+
const roomIndex = this.rooms.findIndex(
267+
r => room.roomId === r.roomId
268+
)
269+
this.rooms[roomIndex].lastMessage = lastMessage
267270
this.rooms = [...this.rooms]
268271
})
269272
if (this.loadingLastMessageByRoom < this.rooms.length) {
@@ -579,8 +582,8 @@ export default {
579582
})
580583
},
581584
582-
listenUsersOnlineStatus() {
583-
this.rooms.map(room => {
585+
listenUsersOnlineStatus(rooms) {
586+
rooms.map(room => {
584587
room.users.map(user => {
585588
const listener = firebase
586589
.database()

0 commit comments

Comments
 (0)