Firebase Firestore Flatter应用程序在2秒后出错?

Firebase Firestore Flatter应用程序在2秒后出错?,firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,我正在为我的planner应用程序使用Flatter_calendar_carousel软件包。我从firestore获取数据,这样它会显示2秒钟,然后我得到以下错误“package:flatter/src/widgets/container.dart”:失败的断言:第316行pos 15:“padding==null | | padding.isNonNegative”:不正确 这是我的密码 import 'package:cloud_firestore/cloud_firestore.dar

我正在为我的planner应用程序使用Flatter_calendar_carousel软件包。我从firestore获取数据,这样它会显示2秒钟,然后我得到以下错误“package:flatter/src/widgets/container.dart”:失败的断言:第316行pos 15:“padding==null | | padding.isNonNegative”:不正确

这是我的密码

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter_calendar_carousel/flutter_calendar_carousel.dart' show CalendarCarousel;
import 'package:flutter_calendar_carousel/classes/event.dart';
import 'package:flutter_calendar_carousel/classes/event_list.dart';
import 'package:intl/intl.dart' show DateFormat;


bool onDarkMode = false;

class MonthPageTest extends StatefulWidget {
  @override
  _MonthPageTestState createState() => _MonthPageTestState();
}

class _MonthPageTestState extends State<MonthPageTest> {




  final databaseReference = Firestore.instance.collection("Planerino").document("UserSettings");
  final databaseRef = Firestore.instance.collection("Eventhmonth");



  darkmode() async{
    try {
      databaseReference.updateData({'Darkmode': onDarkMode});
    }catch (e) {
      print(e.toString());
    }
  }


  @override
  void initState(){
    super.initState();
  }

  @override
  void dispose(){
    super.dispose();
  }


    toggleButton(){
    setState(() {
      onDarkMode = !onDarkMode;
    });
    darkmode();
    }

    //calender
    DateTime _currentDate = DateTime.now();


    static Widget _eventIcon = new Container(
      width: 40.0,
      height: 40.0,
    decoration: new BoxDecoration(
        color: Colors.white,
        borderRadius: BorderRadius.all(Radius.circular(1000)),
        border: Border.all(color: Colors.blue, width: 6.0)),
    child: new Icon(
      Icons.person,
      color: Colors.amber,
      size: 40.0,
    ),
  );



  //function
    EventList<Event> _markedDateMap = new EventList<Event>(
    events: {
      new DateTime(2020, 6, 24): [
        new Event(
          date: new DateTime(2020, 6, 13),
          icon: _eventIcon,
          dot: Container(
            margin: EdgeInsets.symmetric(horizontal: 10.0, vertical: 10.0),
            color: Colors.red,
            ),
          ),
        ],
      },
    );


  Widget builderino(BuildContext context){
    return StreamBuilder(
      stream: databaseRef.snapshots(),
      builder: (context, dataSnapshot){
          var ref = dataSnapshot.data.documents;
          for (var i = 0; i < ref.length; i++) {
            String valueString = ref[i]['color'].split('(0x')[1].split(')')[0];
              int value = int.parse(valueString, radix: 16);
              Color newColor = new Color(value);
            _markedDateMap.add(new DateTime(ref[i]['year'], ref[i]['month'], ref[i]['day']), 
            Event(
              date: new DateTime(2020, 6, 13),
              icon: _eventIcon,
              dot: Container(
                child: Padding(
                padding: EdgeInsets.only(top: 90.0),
                child: Container( alignment: Alignment.center, child: Text(ref[i]['description'], style: TextStyle(fontSize: 15.0, fontWeight: FontWeight.w300), textAlign: TextAlign.center,)),
                  ),
                margin: EdgeInsets.symmetric(horizontal: 10.0, vertical: 10.0),
                decoration: BoxDecoration(color: newColor),
                ),
            ));
          }

          return CalendarCarousel<Event>(
        onDayPressed: (DateTime date, List<Event> events) {
          this.setState(() => _currentDate = date);
          events.forEach((event) => print(event.title));
        },
        weekendTextStyle: TextStyle(
          color: Colors.red,
          fontSize: 28.0,
        ),
        markedDatesMap: _markedDateMap,
        markedDateIconBuilder: (event) {
        return event.dot;
      },
        showIconBehindDayText: true,
        markedDateShowIcon: true,
        markedDateIconMaxShown: 1000,
        todayButtonColor: Colors.black12,
        markedDateMoreShowTotal: true,
        headerTextStyle: TextStyle(fontSize: 34.0, color: Colors.blue[300]),
        daysTextStyle: TextStyle(fontSize: 28.0, color: onDarkMode ? Colors.white : Colors.black45),
        todayTextStyle: TextStyle(fontSize: 28.0, color: onDarkMode ? Colors.white : Colors.black45),
        weekdayTextStyle: TextStyle(fontSize: 28.0),
        );
        }
      );
    }




  @override
  Widget build(BuildContext context) {
    return Scaffold(
    body: Container(
      color: onDarkMode ? Colors.black87 : Colors.white,
      margin: EdgeInsets.symmetric(horizontal: 16.0),
      child:  builderino(context),
    ),
    );
  }
}
import'包:cloud_firestore/cloud_firestore.dart';
导入“套装:颤振日历旋转木马/颤振日历旋转木马。dart”显示日历旋转木马;
导入“package:flatter_calendar_carousel/classes/event.dart”;
导入“package:flatter_calendar_carousel/classes/event_list.dart”;
导入“package:intl/intl.dart”显示日期格式;
bool-onDarkMode=false;
类MonthPageTest扩展StatefulWidget{
@凌驾
_MonthPageTestState createState();
}
类_MonthPageTestState扩展状态{
final databaseReference=Firestore.instance.collection(“Planerino”).document(“UserSettings”);
final databaseRef=Firestore.instance.collection(“Eventhmonth”);
darkmode()异步{
试一试{
databaseReference.updateData({'Darkmode':onDarkMode});
}捕获(e){
打印(如toString());
}
}
@凌驾
void initState(){
super.initState();
}
@凌驾
无效处置(){
super.dispose();
}
切换按钮(){
设置状态(){
onDarkMode=!onDarkMode;
});
暗模式();
}
//压延机
DateTime _currentDate=DateTime.now();
静态小部件_eventIcon=新容器(
宽度:40.0,
身高:40.0,
装饰:新盒子装饰(
颜色:颜色,白色,
borderRadius:borderRadius.all(半径圆形(1000)),
边框:边框。全部(颜色:Colors.blue,宽度:6.0)),
孩子:新图标(
一个人,
颜色:颜色。琥珀色,
尺寸:40.0,
),
);
//作用
事件列表_markedDateMap=新事件列表(
活动:{
新日期时间(2020年6月24日):[
新事件(
日期:新日期时间(2020年6月13日),
图标:_eventIcon,
dot:容器(
边缘:边缘组。对称(水平:10.0,垂直:10.0),
颜色:颜色,红色,
),
),
],
},
);
小部件构建器no(构建上下文){
返回流生成器(
流:databaseRef.snapshots(),
生成器:(上下文,数据快照){
var ref=dataSnapshot.data.documents;
对于(变量i=0;i\u currentDate=日期);
events.forEach((event)=>print(event.title));
},
weekendTextStyle:TextStyle(
颜色:颜色,红色,
字体大小:28.0,
),
markedDatesMap:_markedDateMap,
markedDateIconBuilder:(事件){
return-event.dot;
},
showIconBehindDayText:true,
markedDateShowIcon:正确,
markedDateIconMaxShown:1000,
今天的按钮颜色:颜色。黑色12,
markedDateMoreShowTotal:对,
headerTextStyle:TextStyle(fontSize:34.0,颜色:Colors.blue[300]),
daysTextStyle:TextStyle(fontSize:28.0,颜色:onDarkMode?颜色。白色:颜色。黑色45),
todayTextStyle:TextStyle(fontSize:28.0,颜色:onDarkMode?颜色。白色:颜色。黑色45),
weekdayTextStyle:TextStyle(fontSize:28.0),
);
}
);
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
主体:容器(
颜色:onDarkMode?颜色。黑色87:颜色。白色,
边缘:边缘组。对称(水平:16.0),
子项:builderino(上下文),
),
);
}
}
我需要使其异步还是有什么问题 TLDR

颤振有一个复杂但有效的算法来呈现它的小部件。在运行时分析边距和填充,并确定小部件的最终大小和位置。当您试图发布负边距时,您故意创建了一个无效的布局,其中小部件以某种方式从它应该占用的空间中退出

考虑从本文档中读取文档 TLDR

颤振有一个复杂但有效的算法来呈现它的小部件。在运行时分析边距和填充,并确定小部件的最终大小和位置。当您试图发布负边距时,您故意创建了一个无效的布局,其中小部件以某种方式从它应该占用的空间中退出


考虑一下,当我第一次启动文档时,我没有收到任何错误,当我重新启动它时,它是jsut。当我第一次启动它时,我没有收到任何错误,当我重新启动它时,它是jsut。