[英]Error "Null check operator used on a null value" in flutter
錯誤
我嘗試使用記錄的用戶 uid 從 firebase 獲取用戶數據。 而且我還使用了 model
model代碼
Details detailsFromJson(String str) => Details.fromJson(json.decode(str));
class Details {
Details({
required this.id,
required this.age,
required this.drinkstalkSE,
required this.drinksUnderstandSE,
required this.familyChildren,
});
String id;
String age;
String drinkstalkSE;
String drinksUnderstandSE;
String familyChildren;
factory Details.fromJson(Map<String, dynamic> json) => Details(
id: json["id"] ?? "",
age: json["age"] ?? "",
drinkstalkSE: json["drinkstalkSE"] ?? "",
drinksUnderstandSE: json["drinksUnderstandSE"] ?? "",
familyChildren: json["familyChildren"] ?? "",
);
Map<String, dynamic> toJson() => {
"id": id,
"age": age,
"drinkstalkSE": drinkstalkSE,
"drinksUnderstandSE": drinksUnderstandSE,
"familyChildren": familyChildren,
};
}
后端代碼
bool loading = false;
@override
initState() {
super.initState();
loading = true;
getDetails();
}
Details? oneUserDetails;
Future<void> getDetails() async {
final sp = context.read<SignInProvider>();
final id = sp.uid;
final reference = FirebaseFirestore.instance.doc('users/$id');
final snapshot = reference.get();
final result = await snapshot.then(
(snap) => snap.data() == null ? null : Details.fromJson(snap.data()!));
print('result is ====> $result');
setState(() {
oneUserDetails = result;
loading = false;
});
}
屏幕代碼
數據庫圖像
在我的代碼中沒有任何錯誤顯示我認為問題出在我的 model 但我不明白錯誤是什么以及如何解決它。 如何解決這個錯誤?
據我所知,model有問題。在model中,列表是drinksUnderstandSE和drinkstalkSE都是字符串,但在數據庫中,它是列表,所以它應該是一個列表。
您使用的值已列出,您需要在 class 中為它們創建一個單獨的部分。 如果您不知道具體如何操作,請將您的 json 數據粘貼到本網站,它會為您處理。 你會看到你的錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.