[英]How to get all users in Firestore except those in block array list inside user document?
我正在創建一個使用 Firebas Firestore 作為數據庫的應用程序。 在我的應用程序中,用戶可以阻止其他用戶將他們排除在下一個查詢之外。
我應該使用哪種數據庫結構來執行 Firestore 查詢?
當您阻止某人時,用戶 ID 將存儲在您的用戶文檔中的數組中。 Firestore 查詢僅提供“數組包含”運算符以根據數組值進行過濾。 所以我需要查詢“array-NOT-contains”,但 Firestore 沒有提供。
數據庫結構
users: {
user1:{
name: "Lorem Ipsum"
blockedUsersId: [
0: user1,
1: user2]
}
}
所以我需要查詢“array-NOT-contains”
對於數組中沒有特定值的文檔,您無法針對 Firestore 集合執行查詢。 沒有“數組不包含”運算符。 為什么? 因為 Firestore 中的查詢基於存在的索引,而不是基於不存在的索引。 想象一下,您有一個包含十億個文檔的集合,並且您想要搜索數組中不存在的某個值。 這意味着 Firestore 需要檢查所有文檔才能提供結果。 檢查如此大量的文檔不會擴展,因此沒有“array-not-contains”運算符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.