我想用AND逻辑运算符合并这些查询,所以我只得到满足这两个条件的数据
.where("sportType", "in", sportFilter)
.where("floorType", "array-contains-any", floorFilter)
我试着像这个一样使用嵌套的where
ref
.where("sportType", "in", sportFilter)
.where("floorType", "array-contains-any", floorFilter)
.onSnapshot((snapshot) => {
snapshot.forEach((doc) => {
items.push(doc.data())
})
setLoading(false)
})
但它出现了一个错误,比如:
FirebaseError: Invalid query. You cannot use 'array-contains-any' filters with 'in' filters.
编辑
这是我的收藏结构,我想得到一份有sportType五人制足球和floorType Grass 的文件
[
{
name: "Golden Goal",
sportType: "Futsal",
floorType: "Grass"
},
{
name: "Goalie",
sportType: "Football",
floorType: "Grass"
},
{
name: "Gold",
sportType: "Futsal",
floorType: "Vinyl"
},
]
从文档:每个查询最多可以使用一个in
、not-in
或array-contains-any
子句。不能在同一查询中组合这些运算符
我想要一份有sportType五人制足球和floorType Grass的文件。
这将是正确的查询:
ref.where('sportType', '==', 'Futsal')
.where('floorType', '==', 'Grass');