首先改造了聊天室的訊息系統。在 chat.ts
新增分享型訊息的欄位,讓 sendMessage
函數能夠識別傳入的內容類型。聊天室中的url已經可以直截點選。
重新整理了 ChatPage.vue
的傳送訊息邏輯:
為了讓使用者在任何頁面都能看到有新訊息,實作了 useChatThreads
store。使用者登入時開始監聽 Firestore 的 thread 資料,即時計算個人的未讀訊息總數,在導航列和下拉選單都掛上 badge 提示。當切換會話或重新打開視窗時,就會把未讀數量歸零。
解決亂碼問題:
ChatPage
和 NavBar
重新改寫成乾淨的 UTF-8 編碼users.ts
增加 resolveDisplayName
函數,當使用者沒有設定名稱時會用 email 帳號或 uid 前六碼做 fallback