Skip to content

Commit 958eabc

Browse files
committed
(demo) add lastUpdated index
1 parent 6b59c40 commit 958eabc

File tree

3 files changed

+28
-5
lines changed

3 files changed

+28
-5
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -727,6 +727,11 @@ messages: {
727727
}
728728
```
729729

730+
#### Notes
731+
732+
- You need to create a composite index to order rooms by last message received.
733+
The easiest way to do it is to create a room, then click the error message url in the browser debugging console.
734+
730735
## Use as a Web Component
731736

732737
### Clone vue-advance-chat project

demo/src/App.vue

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,10 +106,22 @@ export default {
106106
const user3 = this.users[2]
107107
await usersRef.doc(user3._id).set(user3)
108108
109-
await roomsRef.add({ users: [user1._id, user2._id] })
110-
await roomsRef.add({ users: [user1._id, user3._id] })
111-
await roomsRef.add({ users: [user2._id, user3._id] })
112-
await roomsRef.add({ users: [user1._id, user2._id, user3._id] })
109+
await roomsRef.add({
110+
users: [user1._id, user2._id],
111+
lastUpdated: new Date()
112+
})
113+
await roomsRef.add({
114+
users: [user1._id, user3._id],
115+
lastUpdated: new Date()
116+
})
117+
await roomsRef.add({
118+
users: [user2._id, user3._id],
119+
lastUpdated: new Date()
120+
})
121+
await roomsRef.add({
122+
users: [user1._id, user2._id, user3._id],
123+
lastUpdated: new Date()
124+
})
113125
114126
this.updatingData = false
115127
}

demo/src/ChatContainer.vue

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ export default {
173173
174174
let query = roomsRef
175175
.where('users', 'array-contains', this.currentUserId)
176+
.orderBy('lastUpdated', 'desc')
176177
.limit(this.roomsPerPage)
177178
178179
if (this.startRooms) query = query.startAfter(this.startRooms)
@@ -430,6 +431,8 @@ export default {
430431
const { id } = await messagesRef(roomId).add(message)
431432
432433
if (file) this.uploadFile({ file, messageId: id, roomId })
434+
435+
roomsRef.doc(roomId).update({ lastUpdated: new Date() })
433436
},
434437
435438
openFile({ message, action }) {
@@ -623,7 +626,10 @@ export default {
623626
624627
const { id } = await usersRef.add({ username: this.addRoomUsername })
625628
await usersRef.doc(id).update({ _id: id })
626-
await roomsRef.add({ users: [id, this.currentUserId] })
629+
await roomsRef.add({
630+
users: [id, this.currentUserId],
631+
lastUpdated: new Date()
632+
})
627633
628634
this.addNewRoom = false
629635
this.addRoomUsername = ''

0 commit comments

Comments
 (0)