从Firestore中的集合中获取数据

时间:2018-08-02 20:10:38

标签: javascript google-maps firebase vue.js google-cloud-firestore

我将地理位置保存到数组中,现在我想在Google地图上输出这些地理位置,但是无法正常工作。没有为新的地理位置设置标记。

需要帮助,如何在地图上为地理位置设置标记?

firestore数据库:

enter image description here

代码:

   mounted () {

    var map = new google.maps.Map(document.getElementById('mapName'), {
      center: {lat: 0, lng: 0},
      zoom: 20
    });


   fb.usersCollection.where("acctPosition", "==", true).get().then(docs => {
    docs.forEach((coord) => {
     const position = new google.maps.LatLng(coord.latitude,coord.longitude);
     const marker = new google.maps.Marker({
        position,
        map: map
       });
     })
    })
  }

这是console.log(coord.data())

的输出

有了这个地理位置,我想在Google地图上设置一个标记。该怎么做?

enter image description here

1 个答案:

答案 0 :(得分:1)

以下应该可以解决问题:

   fb.usersCollection.get().then(docs => {
    docs.forEach((coord) => {
     const lat = coord.data().acctPosition[0].lat;
     const lng = coord.data().acctPosition[0].lng;
     const position = new google.maps.LatLng(lat, lng);
     const marker = new google.maps.Marker({
        position,
        map: map
       });
     })
    })

docs.forEach()返回一个QueryDocumentSnapshot(它“提供与DocumentSnapshot相同的API表面”)。因此,您必须调用data() method才能获得doc字段。