[英]The body might complete normally, causing 'null' to be returned, but the return type, 'Widget', is a potentially non-nullable type. Flutter code
[英]The body might complete normally, causing 'null' to be returned, but the return type, is a potentially non-nullable type
所以基本上我想檢查我的應用程序的狀態,如果用戶登錄它會將用戶重定向到主頁,如果管理員登錄它會重定向到儀表板。 我在那里放了一個退貨聲明,但它說可能會退回 null。 下面是我的代碼片段:
@override
Widget build(BuildContext context) {
return Scaffold(
body: StreamBuilder<User?>(
stream: FirebaseAuth.instance.authStateChanges(),
builder: (context,snapshot){
if(snapshot.hasData){
final User user = FirebaseAuth.instance.currentUser!;
final userID = user.uid;
FirebaseFirestore.instance
.collection('user')
.doc(userID)
.get()
.then((DocumentSnapshot ds) {
Map<String, dynamic> data = ds.data()! as Map<String, dynamic>;
if(data['role']=='admin') {
return AdminPage();
}else {
return HomePage();
}
});
} else {
return AuthPage();
}
},
),
);
}
}
我該如何解決這個錯誤?
當查詢無法執行或加載數據時,您必須返回一些東西。
@override
Widget build(BuildContext context) {
return Scaffold(
body: StreamBuilder<User?>(
stream: FirebaseAuth.instance.authStateChanges(),
builder: (context,snapshot){
if(snapshot.hasData){
final User user = FirebaseAuth.instance.currentUser!;
final userID = user.uid;
FirebaseFirestore.instance
.collection('user')
.doc(userID)
.get()
.then((DocumentSnapshot ds) {
Map<String, dynamic> data = ds.data()! as Map<String, dynamic>;
if(data['role']=='admin') {
return AdminPage();
}else {
return HomePage();
}
});
return LoadingPage();
} else {
return AuthPage();
}
},
),
);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.