[英]Querying Firestore documents by Array or Map fields values in Firebase console
[英]Querying Firestore map fields in flutter
我正在嘗試從名為"bookmarks"
的字段中檢索 Firestore 數據庫中的帖子。 "bookmarks"
字段的類型為 map。 當用戶為帖子添加書簽時,該字段會更新,並將deviceId
設置為true
,如下所示:
▼ bookmarks
deviceId : true
當帖子未添加書簽時, deviceId: true
被刪除,並且bookmarks
字段保持為空,如下所示:
bookmarks: {}
我正在嘗試從deviceID
設置為true
的"bookmarks"
中檢索帖子。 但是,我的查詢返回所有帖子,包括bookmarks
為空的帖子。
這是我的查詢:
QuerySnapshot snapshot = await postsRef
.document(postId)
.collection('users_posts')
.where('bookmarks', arrayContains: deviceId)
.orderBy('timestamp', descending: true)
.getDocuments();
請幫助弄清楚我做錯了什么。 附件是我的數據庫的結構。 謝謝你。
您的bookmarks
字段不是數組,因此您不能像數組一樣查詢它。 它是 map,您可以使用點表示法查詢 map 的嵌套字段的值:
.where('bookmarks.${deviceId}', isEqualTo: true)
我嘗試了該表示法,但對我不起作用,這是我使用的表示法: where("bookmarks.deviceId:true"), 您可以將 true 替換為您正在查找的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.