搜索不到 Firebase Flutter阵列
请帮帮忙,我找了好几天都没找到解决办法。
FirebaseFirestore.instance
.collection("Chats")
.where("members", arrayContains: "90TDhef6G9QY7ljJyZjdpeaLNoA3")
.where("members", arrayContains: "yutgffvvpobjjJyZjdpeaLNoA3")
.get();
我想搜索包含用户的聊天。
出现以下错误消息:
不能多次使用“数组包含”筛选器。
2条答案
按热度按时间ecfdbz9o1#
在此查询“myCollection”集合并搜索其中“myArray”字段包含搜索项“searchTerm”的文档。arrayContains运算符用于搜索数组中的项。
0yg35tkg2#
正如错误消息和查询限制文档所述,Firestore查询只能包含一个
arrayContains
运算符,在当前数据结构中,唯一的选择是在查询中执行一次arrayContains
检查,然后在应用程序代码中过滤其余的arrayContains
检查。为了让查询完全在数据库上运行,考虑将成员存储在Map字段中,而不是存储在数组中:
有了这个结构,您可以使用
==
比较来查找匹配项,并且在查询中 * 允许 * 进行多个这样的相等性检查: