【发布时间】:2020-10-11 07:56:24
【问题描述】:
我正在尝试在我的应用程序中制作两个滑块,当它们从 Firestore 移动用户时,应该过滤并加载到 listview,我收到此错误:
未处理的异常:PlatformException(invalid_query, FIRInvalidArgumentException, Invalid query。您的 where 过滤器在字段“age”上有一个不等式(lessThan、lessThanOrEqual、greaterThan 或 greaterThanOrEqual),因此您还必须使用“age”作为您的第一个queryOrderedBy 字段,但您的第一个 queryOrderedBy 当前位于“position.geohash”字段中。)
我正在使用 GeoFlutterFire 和 firestore,代码如下:
Future<Stream<List<DocumentSnapshot>>> getUsersInRadiusAndAge(double radius,
double minAge, double maxAge) async {
Query q = _firestore.collection('users').where('age', isGreaterThanOrEqualTo: minAge, isLessThanOrEqualTo: maxAge);
Position userLocation = await Geolocator().getCurrentPosition();
GeoFirePoint center = geo.point(
latitude: userLocation.latitude, longitude: userLocation.longitude);
return geo.collection(collectionRef: q)
.within(center: center, radius: radius, field: 'position');
}
【问题讨论】:
标签: firebase flutter google-cloud-firestore geofirestore