firebase - 如何在flutter firebase中使用fromJson将数据存储到模型中?
问题描述
目前我正在做一个颤振项目。我正在尝试创建一个从 Firebase 文档获取快照并使用 fromJson 函数将其存储到 userData 模型中的函数。
这是我的User.dart
class UserData {
// final String uid;
final String usn;
final String fullName;
final int? sem;
final String branch;
final String section;
UserData({
required this.usn,
required this.fullName,
required this.sem,
required this.branch,
required this.section,
});
factory UserData.fromJson(Map<String, dynamic> json) {
return UserData(
usn: json['usn'],
fullName: json['fullName'],
sem: json['sem'],
branch: json['branch'],
section: json['section']);
}
Map<String, dynamic> toMap() {
return {
'usn': usn,
'fullName': fullName,
'sem': sem,
'branch': branch,
'section': section
};
}
}
在我的database.dart 中,我想在其中创建一个 Stream 函数以映射到 fromJson 这是我尝试过的
Stream<UserData?> curUserData() {
return _db.collection('users').doc(user.uid).snapshots()
.map((DocumentSnapshot snapshot) => UserData.fromJson(snapshot.data()));
}
任何人都可以纠正这个功能吗?
我从上面的函数中得到错误。
解决方案
你的问题只是错误的类型断言。试试这个:DocumentSnapshot
改变DocumentSnapshot<Map<String, dynamic>>
Stream<UserData?> curUserData() {
return _db.collection('users').doc(user.uid).snapshots()
.map((DocumentSnapshot<Map<String, dynamic>> snapshot) => UserData.fromDocument(snapshot.data()!));
}
推荐阅读
- linux - Berkeley DB:“make install”在 Linux 上失败
- python - 如何在 Python 中使用 Selenium 来捕获 Google 日历上的动态元素?
- ios - 按日期键对字典数组进行排序
- reactjs - 我可以从 CDN 制作 Reason+React 导入反应模块吗?
- postman - 邮递员的回复不干净
- sql - 如何按日期求和
- python - 在 python 中使用 numpy
- excel - 您可以在 VBA 中的拆分项上递归使用拆分功能吗?
- c# - LINQ 查询 - 如何参数化选择不同的查询
- java - 如何在 env->GetStringUTFChars(...) 之后使用 env->ReleaseStringUTFChars(...)