Firebase 从Firestore Flatter中的文档获取用户名
我需要在个人资料页面上显示用户名。我尝试过多种方法,但每次都显示出错误 这就是我到目前为止所做的:Firebase 从Firestore Flatter中的文档获取用户名,firebase,flutter,dart,google-cloud-firestore,Firebase,Flutter,Dart,Google Cloud Firestore,我需要在个人资料页面上显示用户名。我尝试过多种方法,但每次都显示出错误 这就是我到目前为止所做的: Widget userProfile(BuildContext context) { Stream<DocumentSnapshot> provideDocumentUserName() { return Firestore.instance.collection('user').document('name').snapshots(); } return Container
Widget userProfile(BuildContext context) {
Stream<DocumentSnapshot> provideDocumentUserName() {
return Firestore.instance.collection('user').document('name').snapshots();
}
return Container(
child: StreamBuilder<DocumentSnapshot>(
stream: provideDocumentUserName(),
builder: (BuildContext context,
AsyncSnapshot<DocumentSnapshot> snapshot) {
if (snapshot.hasError) {
return CircularProgressIndicator();
} else {
Map<String, dynamic> documentFields = snapshot.data.data;
return Text(documentFields["name"]);
}
}));
Widget用户配置文件(构建上下文){
流提供的文档用户名(){
返回Firestore.instance.collection('user').document('name').snapshots();
}
返回容器(
孩子:StreamBuilder(
流:提供的文档用户名(),
生成器:(BuildContext上下文,
异步快照(快照){
if(snapshot.hasError){
返回循环ProgressIndicator();
}否则{
Map documentFields=snapshot.data.data;
返回文本(文档字段[“名称]);
}
}));
我得到的错误是:
对null调用了getter“data”。接收方:null尝试调用:
资料
此外:
引发了另一个异常:NoSuchMethodError:对null调用了方法“[]”
我已经为此工作了几个小时。您应该获得如下文档字段:
Map<String, dynamic> documentFields = snapshot.data.data();
Map documentFields=snapshot.data.data();
看起来snapshot.data为空,这就是您可能看到此错误的原因。您可能需要检查连接状态。解决此问题的一种方法如下:
switch (snapshot.connectionState) {
case ConnectionState.done:
if (snapshot.hasError)
return Text('Error: ${snapshot.error}');
Map<String, dynamic> documentFields = snapshot.data;
return Text(documentFields["name"]);
}
return CircularProgressIndicator(); // unreachable
开关(快照.连接状态){
案例连接状态。完成:
if(snapshot.hasError)
返回文本('Error:${snapshot.Error}');
Map documentFields=snapshot.data;
返回文本(文档字段[“名称]);
}
返回CircularProgressIndicator();//不可访问
对@cipli-onat-post的礼遇,它说“表达式的计算结果不是函数,因此无法调用。”