![](/img/trans.png)
[英]Error occurs when trying to validate form : unhandled exception:Null check operator used on null value
[英]Getting "Unhandled Exception: Null check operator used on a null value" while getting data from firestore database
大家好,我正在从事 flutter 项目,我正在从 firestore 数据库获取用户信息,但是当我获取该信息时,它会抛出异常
错误:
E/flutter (18952): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Null check operator used on a null value
E/flutter (18952): #0 _ProfileState.getData (package:recipedia/Tabs/profile.dart:30:86)
E/flutter (18952): <asynchronous suspension>
我的代码:
Future<void> getData() async {
emailFromPrefs = (await SharedPreference().getCred('email'))!;
nameFromDatabase = (await UserModel().getUser(emailFromPrefs, 'name'))!;
setState(() {
name = nameFromDatabase;
email = emailFromPrefs;
});
}
我的用户模型 Class 获取数据 function:
Future<String?> getUser(String email, String data) async {
try {
CollectionReference users =
FirebaseFirestore.instance.collection('users');
final snapshot = await users.doc(email!).get();
final data = snapshot.data() as Map<String, dynamic>;
return data['$data'];
} catch (e) {
return 'Error fetching user';
}
}
而不是使用!
尝试先进行 null 检查。
Future<void> getData() async {
final mEmail = await SharedPreference().getCred('email');
if(mEmail==null){
debugPrint("Got null on email");
return;}
emailFromPrefs = mEmail;
final mName = await UserModel().getUser(emailFromPrefs, 'name');
if(mName ==null){
debugPrint("Got null on name");
return;
}
nameFromDatabase = mName;
setState(() {
name = nameFromDatabase;
email = emailFromPrefs;
});
}
users.doc(email.).get()
上的getUser
也是如此。 try-catch 应该处理这个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.