我正在使用GeoFlutterFire,这是一个用于查询附近用户位置的软件包。
这是我的代码。
Future<Stream<List<DocumentSnapshot>>> getUsers() async {
GeoFirePoint center = geo.point(latitude: lat, longitude: long);
var collectionref = Firestore.instance.collection("locations");
double radius = 50;
String field = 'position';
Stream<List<DocumentSnapshot>> stream = geo.collection(collectionRef: collectionref).within(center: center, radius: radius, field: field);
stream.forEach((element) {print(element);});
}
我要在控制台上打印出来
[Instance of 'DocumentSnapshot', Instance of 'DocumentSnapshot', Instance of 'DocumentSnapshot', Instance of 'DocumentSnapshot', Instance of 'DocumentSnapshot', Instance of 'DocumentSnapshot', Instance of 'DocumentSnapshot', Instance of 'DocumentSnapshot', Instance of 'DocumentSnapshot', Instance of 'DocumentSnapshot', Instance of 'DocumentSnapshot']
我尝试做所有事情,没有任何结果。
我也尝试过从函数返回Stream
,但是没有成功。
请帮忙。
答案 0 :(得分:1)
尝试以下操作:
Stream<List<DocumentSnapshot>> getUsers() async* {
GeoFirePoint center = geo.point(latitude: lat, longitude: long);
var collectionref = Firestore.instance.collection("locations");
double radius = 50;
String field = 'position';
yield* geo
.collection(collectionRef: collectionref)
.within(center: center, radius: radius, field: field);
}
如果要在async*
方法中使用此函数,则可以使用Stream
返回一个yield*
,然后可以使用build()
返回这些值。您可以使用StreamBuilder
小部件。