У меня проблемы с преобразованием данных 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?
Решение
Как упоминалось Охадом ниже:
let chartData;
this.updatesCollection.ref.get().then((querySnapshot) => {
chartData = querySnapshot.docs.map(doc => doc.data());
}
Это дает вам массивс каждым документом в своем собственном индексе.Вы можете получить доступ к отдельным свойствам, как и любой другой объект (например, chartData[0].wheelCount
).