我试图在我的应用程序中制作两个滑块,当他们从 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');
}