Angular Firebase如何遍历列表对象并获取数据

时间:2017-10-24 09:06:33

标签: angular firebase leaflet angularfire

我正在尝试从数据库迭代中提取位置数据并在地图上显示标记。 现在我用这个来拉数据:

this.msgData =this.db.list(`/messages/`).valueChanges();
    this.msgData.take(1).subscribe(msg =>{

console.log(msg);



});

输出: output

如您所见,位置数据的存储方式就像那样。有authid-messageid然后是locationlat和locationlong数据。 dbmap

我想到的第一个想法就是从db中拉出所有locationlat locationlong以某种方式将它们存储在一个数组然后使用for循环将它们添加到地图但我无法弄清楚如何在db中拉出locationlat和locationlong的每个msg?

感谢

1 个答案:

答案 0 :(得分:0)

编辑:Demo

问题是我们不知道数组中每个对象的键的名称,所以尝试这样的东西:

function getObjectWithoutKnowingKey(data) {
    let objects = [];
    for (var propName in data) {
        if (data.hasOwnProperty(propName)) {
            objects.push(data[propName]);
        }
    }
    return objects;
}

在您的函数中:

this.msgData =this.db.list(`/messages/`).valueChanges();
    this.msgData.take(1).subscribe(msg =>{

       let data = msg.map(this.getObjectWithoutKnowingKey)

       console.log(data); // [{ locationlat: 1, locationlong: 2, message: 'nsg', username: 'john' }]
    });