I have a Data Model which looks like this:
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;
}
}
Then I try and get the data from 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 [];
}
How can I use this to get the data from the Firestore database and then return the data as data points for a chart dynamically (in this case for both a line and pie chart).
Please note that I am looking at the FL Chart package.
Thank you for your help in advance.