Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 吸气剂';文件';在显示null时调用了一段时间_Firebase_Flutter_Google Cloud Firestore - Fatal编程技术网

Firebase 吸气剂';文件';在显示null时调用了一段时间

Firebase 吸气剂';文件';在显示null时调用了一段时间,firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,我正在尝试从appBar上的firebase检索用户名。它成功地检索到它。但在成功显示用户名之前,它会在屏幕上显示错误数秒。操作系统的错误 I/flatter(24143):在建筑中抛出以下NoSuchMethodError StreamBuilder(脏,状态: I/颤振(24143):_StreamBuilderBaseState#c10cf): I/flatter(24143):对null调用getter“documents” I/颤振(24143):接收器:空 I/flatter(241

我正在尝试从appBar上的firebase检索用户名。它成功地检索到它。但在成功显示用户名之前,它会在屏幕上显示错误数秒。操作系统的错误

I/flatter(24143):在建筑中抛出以下NoSuchMethodError StreamBuilder(脏,状态:

I/颤振(24143):_StreamBuilderBaseState#c10cf):

I/flatter(24143):对null调用getter“documents”

I/颤振(24143):接收器:空

I/flatter(24143):尝试调用:文档

类数据{
小部件构建(构建上下文){
SystemChrome.setPreferredOrientations([
DeviceOrientation.Up,
]);
CurrentUser\u CurrentUser=Provider.of(上下文,侦听:false);
返回脚手架(
背景颜色:颜色。灰色[600],
resizeToAvoidBottomPadding:false,
appBar:appBar(
标题:文本(“属性主机”),
标题:对,
行动:[
扩大(
孩子:排(
mainAxisAlignment:mainAxisAlignment.spaceAround,
儿童:[
容器(
页边距:仅限新边集(左:50),
子项:文本('Property Host',样式:TextStyle(fontWeight:fontWeight.bold,fontSize:19)),
StreamBuilder(流:Firestore.instance.collection('users')。其中(“uid”,isEqualTo:userid)。快照(),
//忽略:缺少返回
生成器:(BuildContext上下文,异步快照){
如果(snapshot.data==null)
循环前进指示器();
//最终用户文档=snapshot.data;
//最终标题=snapshot.data.userocument['displayName'];
//循环前进指示器();
扩大回报(
子项:ListView.builder(
itemCount:snapshot.data.documents.length,
//忽略:缺少返回
itemBuilder:(构建上下文,int索引){
打印(user.uid);
返回用户!=null
?容器(
页边距:仅限边集(顶部:17,左侧:40),
子:文本(
snapshot.data.documents.elementAt(索引)['displayName']),在,
)
:图标按钮(
图标:图标(Icons.person),
//忽略:缺少返回
已按下:(){
pushNamed(上下文“/LoginScreen”);
},
);
}
),
);
}

使用snapshot.hasData确保在检索数据后构建主窗口小部件(已展开),并在返回数据之前使用CircularRogesIndicator保持其位置

 builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
              if (snapshot.hasData){
                return Expanded(
                  child: ListView.builder(
                      itemCount: snapshot.data.documents.length,
                      // ignore: missing_return
                      itemBuilder: (BuildContext context, int index) {
                        print(user.uid);
                        return user != null
                            ? Container(
                          margin: EdgeInsets.only(top: 17, left: 40),
                          child: Text(
                              snapshot.data.documents.elementAt(index)['displayName']),
                        )
                            : IconButton(
                          icon: Icon(Icons.person),
                          // ignore: missing_return
                          onPressed: () {
                            Navigator.pushNamed(context, '/LoginScreen');
                          },
                        );
                      }
                  ),
                );
                }
                 else {
                   return CircularProgressIndicator();
                   }
    
    }
builder:(构建上下文,异步快照){
if(snapshot.hasData){
扩大回报(
子项:ListView.builder(
itemCount:snapshot.data.documents.length,
//忽略:缺少返回
itemBuilder:(构建上下文,int索引){
打印(user.uid);
返回用户!=null
?容器(
页边距:仅限边集(顶部:17,左侧:40),
子:文本(
snapshot.data.documents.elementAt(索引)['displayName']),在,
)
:图标按钮(
图标:图标(Icons.person),
//忽略:缺少返回
已按下:(){
pushNamed(上下文“/LoginScreen”);
},
);
}
),
);
}
否则{
返回循环ProgressIndicator();
}
}

您忘记了
CircularProgressIndicator()之前返回
 builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
              if (snapshot.hasData){
                return Expanded(
                  child: ListView.builder(
                      itemCount: snapshot.data.documents.length,
                      // ignore: missing_return
                      itemBuilder: (BuildContext context, int index) {
                        print(user.uid);
                        return user != null
                            ? Container(
                          margin: EdgeInsets.only(top: 17, left: 40),
                          child: Text(
                              snapshot.data.documents.elementAt(index)['displayName']),
                        )
                            : IconButton(
                          icon: Icon(Icons.person),
                          // ignore: missing_return
                          onPressed: () {
                            Navigator.pushNamed(context, '/LoginScreen');
                          },
                        );
                      }
                  ),
                );
                }
                 else {
                   return CircularProgressIndicator();
                   }
    
    }