gpt4 book ai didi

android - 如何将自定义数据发送给 FutureBuilder ?

转载 作者:行者123 更新时间:2023-11-29 22:35:53 25 4
gpt4 key购买 nike

我正在尝试查找离我当前位置最近的人。所以我正在从 firestore 中获取所有文档。

我的firestore结构是这样的,

所以我正在获取所有用户并通过计算距离来检查最近的用户,我想将过滤后的数据传递给 future builder 以供查看。

Future makeRequest() async {
var firestore = Firestore.instance;
QuerySnapshot qn = await firestore
.///
.collection('mechanic')
.getDocuments();

final Distance distance = new Distance();

qn.documents.forEach((f) {
double km = distance.as(
LengthUnit.Kilometer,
new LatLng(f.data['location'].latitude, f.data['location'].longitude),
new LatLng(widget.lat, widget.lan));
if (km < f.data['radius']) {
print(f.data);
// filtering data and want to pass this filterd data to Future builder
}
});

return qn.documents;
}
body: FutureBuilder(
future: makeRequest(),
builder: (_, snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return Center(
child: Text("Loading..."),
);
} else {
return ListView.builder(
itemCount: snapshot.data.length,
itemExtent: 100.0,
itemBuilder: (_, index) {
return ListTile(
title: Text(
snapshot.data[index].data['name'],
);
},
);
}
})

如何解决这个问题?

最佳答案

您可以将结果累积到一个列表中并返回该列表。

Future makeRequest() async {
var results =[];
var firestore = Firestore.instance;
QuerySnapshot qn = await firestore
.///
.collection('mechanic')
.getDocuments();

final Distance distance = new Distance();

qn.documents.forEach((f) {
double km = distance.as(
LengthUnit.Kilometer,
new LatLng(f.data['location'].latitude, f.data['location'].longitude),
new LatLng(widget.lat, widget.lan));
if (km < f.data['radius']) {
results.add(f.data);
}

});

return results;
}

关于android - 如何将自定义数据发送给 FutureBuilder ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59511838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com