flutter - 如何解决此错误:在 null 上调用了方法“[]”。接收者:null 尝试调用:[]("name")
问题描述
基本上,我想在部分抽屉中显示信息管理员。所以我用户StreamBuilder
. 然后我内联错误
StreamBuilder<DocumentSnapshot> file:///D:/Android_project/finalyearproject/lib/sidebar/AdminDrawer.dart:26:12
这是我的 AdminDrawer 类
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:finalyearproject/screen/login.dart';
import 'package:finalyearproject/service/auth.dart';
class AdminDrawer extends StatefulWidget {
final String uid ;
AdminDrawer({ this.uid });
@override
_AdminDrawerState createState() => _AdminDrawerState();
}
class _AdminDrawerState extends State<AdminDrawer> {
final AuthService _authService = AuthService();
@override
Widget build(BuildContext context) {
return StreamBuilder( **//this line show the error.**
stream: Firestore.instance.collection('Admin').document(widget.uid).snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return CircularProgressIndicator();
} else {
return Drawer(
child: Column(
children: <Widget>[
Container(
width: double.infinity,
padding: EdgeInsets.only(top: 40),
color: Colors.redAccent,
child: Center(
child: Column(
children: <Widget>[
Container(
padding: EdgeInsets.only(top: 40),
width: 100,
height: 100,
),
(snapshot.data['name']),
Text(snapshot.data['email']),
],
),
),
),
SizedBox(height: 5.0),
ListTile(
leading: Icon(Icons.person_pin),
title: Text('Profile Admin'),
onTap: () async {
**// this area I will use the nagivator push data of info admin for updating profile. This part I will pass the data to other screen//**
},
),
SizedBox(height: 5.0),
ListTile(
leading: Icon(Icons.arrow_back),
title: Text('Logout'),
onTap: () async {
await _authService.signOut();
Navigator.push(context,
MaterialPageRoute(
builder: (context) => LoginScreen()));
}
),
],
),
);
}
}
);
}
}
所以我需要有人帮我解决这个问题。有什么我错过的吗?
解决方案
快照为空,这行是问题所在:snapshot.data['name']
人们遇到过这个问题,也许这对你有帮助:Flutter: StreamBuilder Snapshot -- No Data
推荐阅读
- .htaccess - htaccess 用不同的文件访问重写 url 路径
- python - 划分列表元素并将它们附加到新列表
- appium - WebDriverAgent 文件夹缺少 appium 1.15.1
- amazon-web-services - AWS Lambda 函数:它不显示现有角色的列表
- mysql - 查看 Libreoffice Base 对 mysql 的查询
- python - 如何使用 Django Filters 过滤同一字段的多个值?
- python - 从 Python 中的父文件夹导入模块
- c# - 无法使用 SharePoint 客户端 API 列出文件/文件夹
- sql - 如何使用 LINQ 使用一个表获取另一个表的值
- python - 使用 selenium 捕获网络请求