将FirestoreCollection转换为数组?

时间:2018-05-25 00:43:57

标签: javascript angular chart.js google-cloud-firestore

我很难将Firestore数据转换为chart.js图表​​的数组。

从Firestore获取数据

fetchData(){

    //Get data
    this.updatesCollection = this.afs.collection(pathStats);

    this.updates = this.updatesCollection.valueChanges();
}

创建图表

createChart(){

this.chart = new Chart('canvas', {
  type: 'line',
  data: {
    labels: ['5/18/18', '5/19/18', '5/20/18', '5/21/18', '5/22/18', '5/23/18'],
    datasets: [{
      label: 'Filled',
      backgroundColor: 'gray',
      data: [4, 3, 5, 2, 6, 7],
      fill: true,
    }]
  },
    }
)

我现在使用硬编码值[4, 3, 5, 2, 6, 7]作为我的数据点的占位符。我如何使用来自Firestore的值?

解决方案

如下面的Ohad所说:

let chartData;

this.updatesCollection.ref.get().then((querySnapshot) => {
    chartData = querySnapshot.docs.map(doc => doc.data());
}

这会为您提供一个数组,其中包含每个文档的索引。您可以像访问任何其他对象一样访问各个属性(即chartData[0].wheelCount)。

1 个答案:

答案 0 :(得分:5)

调用<a href="javascript:void(0);" onclick="history.back(); return false;" class="back" > <asp:Label ID="backLabel" runat="server" Text="Back" meta:resourcekey="backLabelResource1" /> </a> 将异步返回record* get_record( int key ) { if( valid( key ) ) return &lookup( key ); else return nullptr; } 个对象。

this.updatesCollection.get()具有querySnapshot属性,该属性是包含零个或多个querySnapshot个对象的数组。可以使用docs方法提取这些数据。

生成数组的代码如下所示:

documentSnapshot