#flutter #dart #charts #google-cloud-firestore
#flutter #dart #Диаграммы #google-облако-firestore
Вопрос:
У меня есть модель данных, которая выглядит следующим образом:
class PieChartDataGraph {
DateTime date;
String books;
PieChartDataGraph(this.date, this.books);
PieChartDataGraph.fromJSON(Map<String, dynamic> json) {
date = json['date'];
books = json['books'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = Map<String, dynamic>();
data['date'] = this.date;
data['books'] = this.books;
return data;
}
}
Затем я пытаюсь получить данные из Firestore:
Future<List<PieChartDataGraph>>
getPieChartData() async {
FirebaseUser user =
await _auth
.currentUser();
var val = await Firestore
.instance
.collection("users")
.document(user.uid)
.collection("moments")
.orderBy('date')
.where('date',
isGreaterThanOrEqualTo: isWeekly
? today.subtract(
Duration(
days: today
.weekday))
: today.subtract(
Duration(
days:
30)))
.getDocuments();
var documents =
val.documents;
if (documents.length > 0) {
try {
return documents
.map((document) {
PieChartDataGraph
pieChartData =
PieChartDataGraph
.fromJSON(Map<
String,
dynamic>.from(
document
.data));
return pieChartData;
});
} catch (e) {
return [];
}
}
return [];
}
Как я могу использовать это для получения данных из базы данных Firestore, а затем динамически возвращать данные в виде точек данных для диаграммы (в данном случае как для линейной, так и для круговой диаграммы).
Пожалуйста, обратите внимание, что я смотрю на пакет диаграмм FL.
Заранее благодарим вас за помощь.