[英]Filtering stream from Cloud Firestore using map field
我有一个名为chats
的 Cloud Firestore 集合,它们的文档具有以下结构:
这里有来自同一个集合的另一个文档:
如您所见,两个文档都有一个共同的users
项目,在本例中,共同的项目是modestovasco@gmail.com: null
,但在第一个文档中,该项目位于第一位,而在第二个项目中,它位于第二位。
我需要创建一个 Stream,它应该过滤在现场users
处有特定电子邮件的文档的chats
集合,并且应该在两个地方(第一个和第二个)进行过滤。
在当前状态下,如果我正在寻找 modestovasco@gmail.com,过滤器应该会检索这两个文档。
在这里你有我当前的过滤器代码:
FirebaseFirestore.instance
.collection("chats")
.where('users', isGreaterThanOrEqualTo: {usuario!.email: null})
.snapshots()
此流仅获取第一个文档。
您可以在 where 子句上使用arrayContainsAny
方法,无论电子邮件位于哪个位置,它都会为您提供用户字段中存在给定电子邮件的那些文档。
修改后的代码如下:
final String emailTobeChecked = 'modestovasco@gmail.com';
FirebaseFirestore.instance
.collection('chats')
.where('users', arrayContainsAny: emailTobeChecked)
.snapshots()
欲了解更多信息,您可以单击此处
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.