【问题标题】:firebase firestore flutter where queryfirebase firestore flutter where 查询
【发布时间】:2021-11-13 00:34:28
【问题描述】:

我想过滤数据列表中存在的嵌套数组项上的 Firestore 列表。

我有一个包含多个文档的集合决策。您可以在图片中看到该文档有团队列表,并且团队列表还有一个团队成员列表,所以我只需要获取那些电子邮件(存在于 team_list 的 team_member_list 字段中)等于我的电子邮件 ID 的文档。 如何使用 where 子句在 Flutter Firebase Firestore 中获取此信息?

FirebaseFirestore.instance.collection('decision').orderBy('close_date')

【问题讨论】:

标签: firebase flutter google-cloud-firestore


【解决方案1】:

Firebase 的array-contains operation 可用于过滤数组字段中存在特定项的文档,但该操作要求您指定数组中的完整项。

没有办法只在数组中的项目中搜索单个值,也无法在子数组中搜索(如在您的文档结构中)。

如果您希望能够根据团队成员的电子邮件选择文档,请将具有这些值的字段添加到文档中,并与 teams_list 字段保持同步。

这样的字段看起来像这样:

team_member_emails: ["snjmediastudio@gmail.com", "vishal@somewhere.com"]

获得该字段后,您可以使用以下方式查询:

FirebaseFirestore.instance.collection('decision')
  .where("team_member_emails", "array-contains", "snjmediastudio@gmail.com")

【讨论】:

    猜你喜欢
    • 2021-06-17
    • 2021-09-26
    • 2020-10-10
    • 1970-01-01
    • 2021-09-12
    • 2021-01-07
    • 2021-11-17
    • 1970-01-01
    • 2020-12-18
    相关资源
    最近更新 更多