繁体   English   中英

使用映射字段从 Cloud Firestore 过滤流

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM