【问题标题】:query intersection of lists in firebase and flutter查询 firebase 和 flutter 中列表的交集
【发布时间】:2022-11-23 09:13:28
【问题描述】:

我正在开发一个带有 flutter 的移动应用程序,我正在尝试从 firebase 查询一个对象列表,firebase 中的每个对象都有一个包含对象类别的字符串数组,在 flutter 上,我有一个包含我想查看的类别的字符串列表,我想从 firebase 中查询所有对象,这些对象至少包含我从 flutter 中选择的数组中存在的字符串中的一个,但我还没有找到这样做的方法,我还看到 firebase 将查询限制为 10 种类型,但我可能希望数组中有 10 种以上的类型。 如果有人可以帮助我,那就太好了,因为我不知道从哪里开始。

【问题讨论】:

    标签: flutter firebase google-cloud-firestore nosql


    【解决方案1】:

    执行:

    首先,这是您的问题的解决方案。

    您需要使用array-contains。例子:

    final objectsRef = db.collection("objects");
    final myCategoryObjects =
        objectsRef .where("categories", arrayContains: "category1");
    

    link 文档中有更多相关信息。

    10个限制:

    请注意,10 个限制不适用于您的情况,因为您正在搜索只有 1 个类别.

    如果您想搜索“类别 1”或“类别 2”的所有对象,则 10 个的限制将适用于您。在这种情况下,您有 2 个解决方案:

    1- 在您的应用程序中执行本地过滤器(而不是在 Firebase 中),或者

    2- 向 Firestore 添加分别特定于每个类别的新字段。例如,字段 1 是布尔值“类别 1”(真或假)...字段 2 是布尔值“类别 2”(真或假),依此类推

    让我知道是否有任何后续行动。

    【讨论】:

      猜你喜欢
      • 2020-12-03
      • 2020-10-10
      • 1970-01-01
      • 2020-11-10
      • 2020-08-01
      • 2021-06-17
      • 2019-10-16
      • 1970-01-01
      • 2021-10-01
      相关资源
      最近更新 更多