簡體   English   中英

查詢 flutter 中的 Firestore map 字段

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM