我很难将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
)。
答案 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