Flutter 吸气剂';电子邮件';在空颤振/火基上调用
我是一个新手,需要一小段代码的帮助。虽然我的代码可以工作,但它首先显示错误/红色屏幕(毫秒)。当我以这种方式收到登录用户的电子邮件时:Flutter 吸气剂';电子邮件';在空颤振/火基上调用,flutter,dart,google-cloud-firestore,firebase-authentication,Flutter,Dart,Google Cloud Firestore,Firebase Authentication,我是一个新手,需要一小段代码的帮助。虽然我的代码可以工作,但它首先显示错误/红色屏幕(毫秒)。当我以这种方式收到登录用户的电子邮件时:this.\u user?.email,它显示: 必须向文本小部件提供非空字符串。 断言失败:“数据!”空' 当我以这种方式收到电子邮件时:\u user.email,会显示: 获取程序“电子邮件”的调用为null 收件人:空 尝试呼叫:电子邮件 请建议如何抛出并捕获此异常或修复此问题。我们将非常感谢您的任何帮助,并欢迎您的意见。我的完整代码如下: class M
this.\u user?.email,
它显示:
必须向文本小部件提供非空字符串。
断言失败:“数据!”空'
当我以这种方式收到电子邮件时:\u user.email,
会显示:
获取程序“电子邮件”的调用为null
收件人:空
尝试呼叫:电子邮件
请建议如何抛出并捕获此异常或修复此问题。我们将非常感谢您的任何帮助,并欢迎您的意见。我的完整代码如下:
class MyAccountSetting extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: AccountSetting(),
);
}
}
class AccountSetting extends StatefulWidget {
@override
State<StatefulWidget> createState() {
return new AccountSettings();
}
}
class AccountSettings extends State<AccountSetting> {
final FirebaseAuth _auth = FirebaseAuth.instance;
FirebaseUser _user;
@override
void initState() {
super.initState();
initUser();
}
initUser() async {
_user = await _auth.currentUser();
setState(() {});
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
margin: const EdgeInsets.only(top: 10.0),
),
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
IconButton(
icon: Icon(Icons.mail),
iconSize: 30,
onPressed: () {},
),
Text(
_user.email,
// this._user?.email,
style: TextStyle(fontSize: 18),
),
],
),
]
),
),
);
}
}
类MyAccountSetting扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
主页:AccountSetting(),
);
}
}
类AccountSetting扩展了StatefulWidget{
@凌驾
状态createState(){
返回新的AccountSettings();
}
}
类AccountSettings扩展状态{
final FirebaseAuth _auth=FirebaseAuth.instance;
FirebaseUser\u用户;
@凌驾
void initState(){
super.initState();
initUser();
}
initUser()异步{
_user=wait_auth.currentUser();
setState((){});
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
正文:SingleChildScrollView(
子:列(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
容器(
边距:仅限常量边集(顶部:10.0),
),
划船(
mainAxisAlignment:mainAxisAlignment.start,
儿童:[
图标按钮(
图标:图标(Icons.mail),
iconSize:30,
按下:(){},
),
正文(
_user.email,
//此.\u用户?.email,
样式:TextStyle(字体大小:18),
),
],
),
]
),
),
);
}
}
在等待检索用户时,您希望显示什么?例如,如果要显示空字符串('
),可以编写如下内容:
\u user==null?“”:_user.email
甚至更短:
\u用户?.email???”
这样,如果\u用户
为空,您将显示一个空字符串