iT邦幫忙

2025 iThome 鐵人賽

DAY 16
0
Modern Web

FlowNest系列 第 16

Day16_踩雷日記/chat報錯排查_02

  • 分享至 

  • xImage
  •  
  • /chat 先被 false for 'list' @ L75 擋住。規則其實要分 listget,而且規則沒有 request.query.where 可用。改法:list 只要登入就過;get 才驗證聊天室成員。

  • 登入又跳 auth/network-request-failed,是我沒開 Auth Emulator,跑:

    firebase emulators:start --only auth,firestore
    
  • 訊息讀取出現 Property senderId is undefined。是舊資料少欄位,我在規則補 keys().hasAll([...]),再把舊訊息清掉或重 seed。

  • 點選傳送訊息報 reads before writes,把流程改成在 runTransaction先讀 thread,算好 unreadCount,再一次寫 message 和更新 thread

  • src/api/chat.ts 三個錯誤訊息原本是亂碼,我全改成正常字串,順手把 sendMessage 收斂成一個交易。

  • 後來簡化規則在本機跑通:登入可讀寫 chatThreads、可讀 messages,建立訊息時檢查 senderId 必須是本人。
    開兩個瀏覽器測試,終於可以測試訊息成功Q
    https://ithelp.ithome.com.tw/upload/images/20250927/201684063HC7k70Hdc.png


上一篇
Day15_踩雷日記/chat報錯排查
系列文
FlowNest16
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言