![](/img/trans.png)
[英]Flutter/ Firebase The getter 'length' was called on null
[英]The getter 'email' was called on null-Flutter/Firebase
我是 flutter 的新手,需要一小段代碼的幫助。 雖然我的代碼有效,但它首先顯示錯誤/紅屏(毫秒)。 當我以這種方式獲得登錄用戶的 email 時: this._user?.email,
它顯示:
必須向 Text 小部件提供非空字符串。 斷言失敗:“數據!= null”
當我以這種方式獲得 email 時: _user.email,
它顯示:
在 null 上調用了 getter 'email'。
接收器:null
嘗試調用:email
請建議如何拋出和捕獲此異常或解決此問題。 任何形式的幫助都將受到高度贊賞,並歡迎提出意見。 我的完整代碼在這里:
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),
),
],
),
]
),
),
);
}
}
在等待用戶被檢索時,您想顯示什么? 例如,如果您想顯示一個空字符串 ( ''
),您可以編寫如下內容:
_user == null ? '' : _user.email
甚至更短:
_user?.email ?? ''
這樣,如果_user
是 null,您將顯示一個空字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.