gpt4 book ai didi

flutter - 从 Firestore 检索数据并将其传递给变量。 flutter

转载 作者:行者123 更新时间:2023-12-04 08:57:23 25 4
gpt4 key购买 nike

嗨,我想问一下如何从 Firestore 检索数据并将其发送到 double。
这是我从 Firestore 检索数据的代码。

Firestore.instance
.collection('locations')
.snapshots()
.listen((driverLocation){
driverLocation.documents.forEach((dLocation){
dLocation.data['Latitude'] = latitude;
dLocation.data['Longitude'] = longitude;
print(latitude);
});
});
我把它存放在 dLocation 里面当我 print(dLocation.data)它将在 Firestore 中显示纬度和经度。但是当我将它传递给 double latitude 时和 double longitude它返回空值。
busStop.add(
Marker(
markerId: MarkerId('driverLocation')
,
draggable: false,
icon: BitmapDescriptor.defaultMarker,
onTap: () {
},
position: LatLng(latitude, longitude),
));
然后我想传递 double latitude 中的数据和 double longitude进入标记,以便标记会相应地移动到 Firestore 中的纬度和经度。
这里发生的一切都在 initState() 中.
**如果您有什么想问的,请随时提出,因为我不知道如何表达我的问题。非常感谢你。

最佳答案

你这样做是错误的。现在您正在分配 latitude 的值(为空)到 dLocation.data['latitude'] 的值.你想要做的是:

latitude = dLocation.data['latitude'];
longitude = dLocation.data['longitude'];
通过此更改, dLocation.data['latitude'] 的值将分配给 latitudedLocation.data['longitude'] 的值将分配给 longitude多变的
更新:
获取新标记并使用 latitude 在屏幕上显示它们和 longitude值,您可以执行以下操作:
@override
void initState(){
Firestore.instance
.collection('locations')
.snapshots()
.listen((driverLocation){
//busStop = []; removes all the old markers and you don't get duplicate markers with different coordinates
driverLocation.documents.forEach((dLocation){
dLocation.data['Latitude'] = latitude;
dLocation.data['Longitude'] = longitude;
busStop.add(
Marker(
markerId: MarkerId('driverLocation')
,
draggable: false,
icon: BitmapDescriptor.defaultMarker,
onTap: () {
},
position: LatLng(latitude, longitude),
)); //you need to check for duplicate markers here. you can do it by giving each marker an unique id and check for the same marker in the list so you don't get duplicate markers.
});
setState((){}); //rebuilds the widget tree after adding the markers to the busStop list
});

}
这里发生的事情是您将标记添加到 busStop 列表,在添加所有标记后,您调用 setState 并且小部件树使用最新数据重建屏幕。您可能需要检查重复的标记,因为它们可能会重新添加到 busStop列表。或者您可以简单地删除所有旧标记并使用 busStop = []; 添加新标记。添加到 busStop 之前

关于flutter - 从 Firestore 检索数据并将其传递给变量。 flutter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63741057/

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