Flutter 颤振从数据模型获取firestore数据并用作图表的数据

Flutter 颤振从数据模型获取firestore数据并用作图表的数据,flutter,dart,charts,google-cloud-firestore,Flutter,Dart,Charts,Google Cloud Firestore,我有一个如下所示的数据模型: class PieChartDataGraph { DateTime date; String books; PieChartDataGraph(this.date, this.books); PieChartDataGraph.fromJSON(Map<String, dynamic> json) { date = json['date']; books = jso

我有一个如下所示的数据模型:

    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;
      }
    }
类PieChartDataGraph{
日期时间日期;
弦乐书;
PieChartDataGraph(this.date,this.books);
PieChartDataGraph.fromJSON(映射json){
date=json['date'];
books=json['books'];
}
映射到JSON(){
最终地图数据=地图();
数据['date']=此日期;
数据['books']=this.books;
返回数据;
}
}
然后我尝试从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 [];
                                                  }
未来
getPieChartData()异步{
FirebaseUser用户=
等待授权
.currentUser();
var val=等待Firestore
.例如
.收集(“用户”)
.document(user.uid)
.收藏(“瞬间”)
.orderBy('日期')
.其中(‘日期’,
是每周吗
今天。减去(
持续时间(
天:今天
(星期一)
:今天。减去(
持续时间(
天:
30)))
.getDocuments();
风险值文件=
增值税文件;
如果(documents.length>0){
试一试{
归还文件
.map((文档){
PieChartDataGraph
Piechart数据=
PieChartDataGraph
.fromJSON(映射<
一串
动态>.from(
文件
(a.数据);
返回数据;
});
}捕获(e){
返回[];
}
}
返回[];
}
我如何使用它从Firestore数据库获取数据,然后将数据作为图表的数据点动态返回(在本例中为折线图和饼图)

请注意,我正在查看FL图表包

提前谢谢你的帮助