Flutter在Firebase中使用OR查询

pn9klfpd  于 2023-06-30  发布在  Flutter
关注(0)|答案(1)|浏览(115)

Firebase OR查询从Flutter cloud_firestore包的4.5.0版本开始可用。我正在使用cloud_firestore:4.8.2但我的OR查询不起作用。下面是我的代码:

final ref = FirebaseFirestore.instance.collection('users');

final query = await ref.where(
   Filter.or(
      Filter('followerCount', isGreaterThanOrEqualTo: followerCount),
      Filter('followingCount', isGreaterThanOrEqualTo: followingCount),
   ),
).get();

根据GitHub上的这条评论,代码似乎是正确的:
https://github.com/firebase/flutterfire/pull/10678#issuecomment-1490300789
但是我得到了这个错误:
Firebase错误:无效查询。所有地方过滤器与不等式(<,<=,!=、not-in、>或>=)必须在同一字段上。但是你在'followerCount'和'followingCount'上有不等式过滤器
有什么想法吗

sg2wtvxw

sg2wtvxw1#

这个问题与使用OR条件无关,而是因为您试图对两个不同的字段执行范围筛选。正如错误消息所说,所有所谓的不等式过滤器必须在同一字段上。
来自查询限制的文档:
在复合查询中,range(<<=>>=)和not equals(!=not-in)比较必须在同一字段上进行筛选。

相关问题