在我的streambuilder -第一次我得到快照空值。并显示我错误。在空值中使用了重复检查操作符。
这里是我的主要部件,显示我的错误.主应用程序状态:
home: _getLandingPage(),
字符串
显示错误的小部件
Widget _getLandingPage() {
return StreamBuilder<User?>(
stream: FirebaseAuth.instance.authStateChanges(),
builder: (BuildContext context, snapshot) {
debugPrint('From landing method: ');
debugPrint('User type: ${userType}');
debugPrint('snaphsot has data : ${snapshot.hasData}');
debugPrint(
'snaphsot provider length : ${snapshot.data!.providerData.length}');
if (snapshot.hasData) {
if (snapshot.data!.providerData.length == 1 &&
snapshot.data!.emailVerified) {
// logged in using email and password
if (userType == null) {
return const WelComeScreen();
}
return userType == 'TEACHER'
? TeacherMainScreen()
: const StudentMainScreen();
}
else {
return const SignInScreen();
}
}
else {
debugPrint('snapshot has no data for');
return const SignInScreen();
}
},
);
型
}
控制台:
From landing method:
User type: Teacher
snapshot has data: false
型
快照有数据:false
一段时间后,快照获得了数据。
1条答案
按热度按时间jtjikinw1#
这条线
字符串
抛出错误。
如果
snapshot.hasData
为false,则在使用snapshot.data!
时会抛出“在空值中使用的校验运算符”。您可以使用
型