假设我在FiRestore中有以下格式的文档:

{
    'field1': ['v1', 'v2', 'v3'],
    'field2': ['v5', 'v6']
}

我想查询的文档中的field1包含一个给定的值,field2包含一个给定的值.我想执行一个AND操作,在这个操作中,我只在一个查询中指定这些条件,并获取所有有效的文档.以下是我try 的:

await FirebaseFirestore.instance
        .collection(COLLECTION)
        .where("field1", arrayContainsAny: ['v1', 'v2'])
        .where('field2', arrayContains: 'v1')
        .get();

但我有个例外:

enter image description here

那么,有没有办法将这些组合在一起进行查询呢?

推荐答案

那么,有没有什么方法可以将它们结合起来进行查询呢?

不能,您不能在同一查询中组合arrayContainsAnyarrayContains.根据关于array membership人的官方文件:

每个析取(或组)最多只能使用一个array-contains子句.在同一个析取运算中,can'tarray-containsarray-contains-any相加.

要解决这个问题,您应该在查询中使用其中一个条件,并在客户机上过滤其余结果.

Flutter相关问答推荐

在Flutter 动中绘制ECG图

Dexing时出错.将Flutter 升级到3.19.0后

使用GO_ROUTER在模式内导航

blocTest错误:没有从`when()`中调用方法存根

Flutter API请求BadState响应

怎么才能像这样在摆动着这些曲线呢?

Flutter :URI的目标不存在

DART:如何判断有时可以为空的泛型类型?

使用Ffltter CREATE创建项目时,androidManifest.xml中缺少包属性

尽管 onCollision 处理了我的角色还是从平台上掉了下来

没有为类型 'Widget' 定义运算符 '[]' .try 定义运算符[]

为 flutter app/firebase 保存 chatgpt api-key 的正确方法是什么

无状态和有状态小部件,我可以同时使用吗?

有什么办法可以消除Flutter 中的传递依赖?

为什么轮播加载图片很慢?

通过点击缩略图加载全屏图像

出现错误;运算符[]不是为对象类型定义的?功能()'

在 flutter 中使用 StreamBuilder 在文本字段中键入时显示过滤记录

如何在Flutter 中制作自定义微调器?

设计响应式卡片的最佳方法,以避免像素溢出错误或 _AssertionError