![](/img/trans.png)
[英]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.