如何解决此错误,在null上调用了“文档”

时间:2019-01-16 09:31:39

标签: firebase dart flutter

我正在尝试使用flutter和firebase构建移动应用程序,当我运行代码时,在控制台上出现以下错误,红色屏幕弹出黄色文本并迅速消失。

I/flutter ( 6397): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter ( 6397): The following NoSuchMethodError was thrown building ProjectDetailsPage(dirty, state:
I/flutter ( 6397): _ProjectDetailsPageState#210e3):
I/flutter ( 6397): The getter 'documents' was called on null.
I/flutter ( 6397): Receiver: null
I/flutter ( 6397): Tried calling: documents

我试图使用if语句来检查它是否为null或不为null,但仍然遇到相同的异常。不知道下一步该怎么做,谢谢您的努力

 68   @override
 69   Widget build(BuildContext context) {
 70     var getprojname;
 71     var getprojdesc;
 72     var numberofempperproj;
 73     var projectmanger;
 74     var projectbudget;
 75
 76     var projectobj;
 77
 78     if (Projects.documents != null) { //this is where i checked if null or not
 79
 80        getprojname =  Projects.documents[0].data['projectname'];
 81        getprojdesc =  Projects.documents[0].data['projectdesc'];
 82        numberofempperproj =  Projects.documents[0].data['numberofempPerproj'].toString();
 83        projectmanger =  Projects.documents[0].data['projectmanager'];
 84        projectbudget = Projects.documents[0].data['projectbudget'].toString();
 85        projectobj = Projects.documents[0].data['objectives'];
 86        name = getprojname;
 87        print(getprojname);
 88
 89       // TODO: implement build
 90          return Scaffold(
 91              appBar: AppBar(
 92                // title: Text('Project details'),
 93                elevation: 2.0,
 94                backgroundColor: Colors.white,
 95
 96                title: Text(getprojname, style: TextStyle(color: Colors.black,
 97                    fontWeight: FontWeight.w700,
 98                    fontSize: 19.0)),
 99                actions: <Widget>
100                [
101                  Container
102                    (
103                    margin: EdgeInsets.only(right: 8.0),
104                    child: Row
105                      (
106                      mainAxisAlignment: MainAxisAlignment.center,
107                      crossAxisAlignment: CrossAxisAlignment.center,
108
109                    ),
110                  )
111                ],
112              ),

我希望它不会弹出红色屏幕,而是转到显示Firebase数据库数据的应用程序的下一页。

1 个答案:

答案 0 :(得分:0)

尝试将if (Projects.documents != null)更改为if (Projects != null && Projects.documents != null)