我正在嘗試確定處理向用戶顯示他們有未讀訊息的最佳方式,例如在導航欄中。
目前,對于每個對話,我都有單獨的檔案,其中包含如下資料:
users: [ 'userId-1', 'userId-2' ]
messages: [
{
message: 'Test message',
timestamp: 12345678910,
userId: 123456
},
// etc...
]
目前我正在考慮向unread訊息物件添加一個屬性。然后,在頁面加載時,我必須獲取users包含 currentUser id 的每個檔案以及其中的任何訊息物件是否messages包含該unread: true屬性。
但隨后我必須將訊息標記為已讀,但僅限于其中一個用戶。所以我的資料結構已經不起作用了。
此外,這對我來說似乎不是很高效,尤其是在用戶進行大量對話的情況下。關于如何以不同方式處理這個問題的任何想法?
uj5u.com熱心網友回復:
我正在嘗試確定處理向用戶顯示他們有未讀訊息的最佳方式,例如在導航欄中
我了解您只想顯示多條未讀訊息(或至少有一條未讀訊息的資訊)。如果是這種情況,您可以利用新的count()聚合,該聚合考慮了查詢中的任何過濾器。
你的資料模型對我來說不是 100% 清楚,但由于你有一個用戶陣列,你可以有一個額外的陣列欄位,其中包含尚未閱讀訊息的用戶。因此,在頁面加載時,您需要構建此陣列包含 currentUser uid 的所有訊息的查詢,然后呼叫getCountFromServer()此查詢。
您無需為與查詢對應的每條訊息付費,而是為每批最多 1000 個與查詢匹配的索引條目讀取一個檔案付費。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/527656.html
標籤:Google Cloud Collective 火力基地谷歌云火库
