误差
我尝试使用登录用户的uid从firebase中获取用户数据。我还使用了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;
});
}
屏幕代码
数据库映像
在我的代码中没有任何错误显示我认为我的模型中有问题,但是我不明白错误是什么以及如何解决它。如何解决这个错误?
2条答案
按热度按时间eiee3dmh1#
价值观 如果你使用的json数据被列出,你需要在类中为它们创建一个单独的部分。如果你不知 prop 体方法,把你的json数据粘贴到这个站点上,它会为你处理它。你会发现你的错误。
https://javiercbk.github.io/json_to_dart/
1aaf6o9v2#
据我所知,模型有一个问题,在模型中,列表drinksUnderstandSE和drinkstalkSE都是字符串,但在数据库中,它是列表,所以它应该是列表。