【发布时间】:2020-12-08 18:39:47
【问题描述】:
我正在编写一个应用程序,其中一个用户可以根据以下标准过滤其他用户:一个范围内的年龄、一个范围内的体重和排名。
我遇到的问题是只过滤了列出的值之一。 .where .where .where 链接可能不起作用,在https://firebase.google.com/docs/firestore/query-data/queries#compound_queries 它说应该使用命令 whereEqualTo。但是,我的 IDE 无法识别此命令。
有谁知道我如何编写这样的查询?我没有列出代码示例,因为我很欣赏通用方法。我在互联网上找不到任何关于它的信息。
提前感谢您的帮助!
这是我的代码:
query() {
if (currentUser.rank == 'Gold') {
return docRef
.where('Rank', isEqualTo: 'Gold')
.where('age',
isGreaterThanOrEqualTo: int.parse(currentUser.ageRange['min']))
.where('age',
isLessThanOrEqualTo: int.parse(currentUser.ageRange['max']))
.orderBy('age', descending: false);
} else if (currentUser.rank == 'Silver') {
return docRef
.where('Rank', isEqualTo: 'Silver')
.where('age',
isGreaterThanOrEqualTo: int.parse(currentUser.ageRange['min']))
.where('age',
isLessThanOrEqualTo: int.parse(currentUser.ageRange['max']))
.orderBy('age', descending: false);
} else if (currentUser.rank == 'Bronze') {
return docRef
.where('Rank', isEqualTo: 'Bronze')
.where('age',
isGreaterThanOrEqualTo: int.parse(currentUser.ageRange['min']))
.where('age',
isLessThanOrEqualTo: int.parse(currentUser.ageRange['max']))
.orderBy('age', descending: false);
}
}
【问题讨论】:
标签: flutter google-cloud-firestore