如何在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的主要内容,如果未能解决你的问题,请参考以下文章

如何在颤动中将数据从复选框存储到 Firebase

如何在flutter中将用户数据保存在云Firestore中

如何在firebase Flutter中将2个用户链接在一起

在 Flutter 中将 Firebase 数据作为 Listview 构建器获取

Flutter - 一段时间后自动刷新地图上的标记图标

如何在 Flutter 中将 XFile 转换为文件