【问题标题】:Flutter firestore, how to get documents contailing a value inside an arrayFlutter firestore,如何获取包含数组内值的文档
【发布时间】:2019-08-21 06:50:55
【问题描述】:

我有一个 json 数据存储在 firestore 中,如下所示,文档的 id 是 ddmmyyyy 格式的日期

29032019:{
   morning:[{
      person : 1,
      name:'abc',
      cancelled:false
     },
     {
      person : 2,
      name:'abc',
      cancelled:false
    }
  ],
  afternoon:[{
      person : 3,
      name:'abc',
      cancelled:false
   },
   {
      person : 4,
      name:'abc',
      cancelled:false
   }
 ]
}
30032019:{
   morning:[{
      person : 5,
      name:'abc',
      cancelled:false
     },
     {
      person : 2,
      name:'abc',
      cancelled:false
    }
  ],
  afternoon:[{
      person : 6,
      name:'abc',
      cancelled:false
   },
   {
      person : 7,
      name:'abc',
      cancelled:false
   }
 ]
}

这里的 9032019 和 30032019 是文档 ID。如何获取包含上午和下午数组中的人的文档,到目前为止,我可以做的是通过使用接下来的 3 个即将到来的日期来获取文档并遍历上午和下午数组以检查 ID 为 6 的人是否存在于收藏与否。

【问题讨论】:

  • 你可以添加你正在使用的代码

标签: flutter google-cloud-firestore


【解决方案1】:

使用 Firestore,您无法像现在一样在数组中搜索对象的字段。您只能按项目的确切内容搜索数组。

这意味着您必须将要搜索的值带入可搜索的新字段。如果您通过 person 字段进行搜索,您可以在名为 people 的文档中创建一个新的数组字段,该字段仅包含每个人的整数,然后使用 arrayContains 查询来查找它们。

【讨论】:

    猜你喜欢
    • 2021-08-18
    • 2021-07-06
    • 2019-05-05
    • 2021-06-17
    • 2019-01-26
    • 2021-07-20
    • 1970-01-01
    • 2020-12-05
    • 2019-04-20
    相关资源
    最近更新 更多