3 回答

TA貢獻(xiàn)1812條經(jīng)驗 獲得超5個贊
有兩種情況
您應(yīng)用中的用戶只有少數(shù)關(guān)注者。
您應(yīng)用中的用戶擁有大量關(guān)注者。如果我們要將整個關(guān)注者存儲在Firestore中的單個文檔中的單個數(shù)組中。然后它將達(dá)到每個文檔1 MiB的存儲限制。
在第一種情況下,每個用戶都必須保留一個文檔,該文檔將關(guān)注者列表存儲在單個數(shù)組中的單個文檔中。通過使用arrayUnion()和arrayRemove(),可以有效地管理關(guān)注者列表。而且,當(dāng)您要在時間軸中發(fā)布內(nèi)容時,必須在發(fā)布文檔中添加關(guān)注者列表。
并使用下面給出的查詢來獲取帖子
postCollectionRef.whereArrayContains("followers", userUid).orderBy("date");
在第二種情況下,您只需要根據(jù)關(guān)注者數(shù)組的大小或數(shù)量來中斷用戶關(guān)注文檔。在將數(shù)組的大小達(dá)到固定大小后,下一個關(guān)注者的ID必須添加到下一個文檔中。并且第一個文檔必須保留字段“ hasNext”,該字段存儲布爾值。添加新帖子時,您必須復(fù)制帖子文檔,并且每個文檔都包含較早中斷的關(guān)注者列表。我們可以進(jìn)行與上面給出的相同的查詢來獲取文檔。
添加回答
舉報