如何在flutter中将标记从firebase(真实数据库)检索到新的google maps api
Posted
技术标签:
【中文标题】如何在flutter中将标记从firebase(真实数据库)检索到新的google maps api【英文标题】:how to retrive markers from firebase (real database) to new google maps api in flutter 【发布时间】:2020-08-27 08:39:45 【问题描述】:下面的函数通过(For循环)从firebase真实数据库中获取标记,这个函数我从谷歌地图或谷歌地图中的标记参数调用它,但它不显示来自数据库的标记,所以如何做到这一点强>
_getMarkers()async
final locationReference=FirebaseDatabase.instance.reference().child('users');
final String markerIdVal = 'marker_id_$_markerIdCounter';
_markerIdCounter++;
final MarkerId markerId = MarkerId(markerIdVal);
for(var items in locationReference.child("path"))
_markers2.add(Marker(
markerId: markerId,
position: LatLng(items.longitude,items.latitude),
infoWindow: InfoWindow(title: "$items.restaurantname"),
onTap: ()
_onMarkerTapped(markerId);
,
onDragEnd: (LatLng position)
_onMarkerDragEnd(markerId, position);
,
));
【问题讨论】:
您的 Firebase 代码在哪里? 代码已更新,请帮帮我,谢谢 【参考方案1】:您没有从实时数据库中检索任何内容,您必须使用once()
检索:
final locationReference=FirebaseDatabase.instance.reference().child('users');
locationReference.once().then((result)
print(result.value);
);
【讨论】:
好的,但是当我在谷歌地图中添加它时,for循环如何获取值并在标记中设置这个值 你需要从你的数据库中检索标记,这个print(result.value);
给你什么?
当使用 for(var items in result) print(result.value);运行时出现终止符错误:'for' 循环中使用的 DataSnapShot 类型必须实现可迭代
这会打印什么print(result.value);
?
只需在终端中打印数据库中的所有信息,这一步很好,但是当我在标记中使用此结果时不支持我示例:新标记(markerId:result.value?,位置:LatLng(result. value,result.value),这里怎么办 ;) 你懂我吗? :)以上是关于如何在flutter中将标记从firebase(真实数据库)检索到新的google maps api的主要内容,如果未能解决你的问题,请参考以下文章
如何在flutter中将用户数据保存在云Firestore中
如何在firebase Flutter中将2个用户链接在一起