Das*_*ola 0 dart flutter google-cloud-firestore dart-null-safety
我尝试使用记录的用户 ID 从子集合中获取数据。然后显示这个错误

我尝试从 firestore 子集合中获取它。集合名称是“users”,文档名称是 userid
代码
Future<void> getAmount() async {
final id = "${loggedInUser.uid}";
final reference = FirebaseFirestore.instance.doc('users/$id/recharge/$id');
final snapshot = reference.get();
final result = await snapshot.then(
(snap) => snap.data() == null ? null : Amounts.fromJson(snap.data()!));
print('result is ====> $result');
setState(() {
oneAmount = result;
loading = false;
});
}
Run Code Online (Sandbox Code Playgroud)
文本小部件
Text(
oneAmount!.amount,
style: GoogleFonts.roboto(
textStyle: TextStyle(
fontSize: 20,
fontWeight: FontWeight.bold,
color: kWhite,
),
),
Run Code Online (Sandbox Code Playgroud)
模型
import 'dart:convert';
Amounts articlesFromJson(String str) => Amounts.fromJson(json.decode(str));
String articlesToJson(Amounts data) => json.encode(data.toJson());
class Amounts {
Amounts({
required this.id,
required this.amount,
});
String id;
String amount;
factory Amounts.fromJson(Map<String, dynamic> json) => Amounts(
id: json["id"] ?? "",
amount: json["amount"] ?? "",
);
Map<String, dynamic> toJson() => {
"id": id,
"amount": amount,
};
}
Run Code Online (Sandbox Code Playgroud)
!您可以接受 null 值,而不是使用,例如
Text("${oneAmount?.amount}"),
Run Code Online (Sandbox Code Playgroud)
或者在 null 情况下提供默认值
Text(oneAmount?.amount?? "got NUll"),
Run Code Online (Sandbox Code Playgroud)
或进行空检查然后显示小部件
if(oneAmount!=null) Text(oneAmount.amount),
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
527 次 |
| 最近记录: |