firebase - 如何将动态地图对象从 Firestore 映射到 Flutter 以及从 Flutter 到 Firestore?
问题描述
我想将 Firestore 上的动态地图对象转换为 Flutter。下面是一个例子:
被阻止用户的地图可以更改。有时,它可能包含 3 个被阻止的用户 ,有时,它可能包含 2 个。
以下是我当前的代码:
class UserModel {
String userId;
String bio;
///add in dynamic blockedusers mapping
}
UserModel(
{
this.userId,
this.bio,
///add in dynamic blockedusers mapping
}
UserModel.fromJson(Map<dynamic, dynamic> map) {
userId = map['userId'];
bio = map['bio'];
///add in dynamic blockedusers mapping
}
toJson() {
return {
"userId": userId,
'bio': bio,
///add in dynamic blockedusers mapping
};
}
鉴于地图对象发生变化,有没有办法将其从 Firestore 动态映射到 Flutter 或将其从 Flutter 映射到 Firestore?提前致谢!
解决方案
有几种方法可以做到这一点,最简单的方法是将其作为 Map 存储在UserModel
.
或者在飞镖中,您可以通过它们映射创建字符串列表:List blockedUsers = blockedUsersFromDB.keys.toList()
。
或者,如果有更多信息,请使用静态 listfromjson 创建子模型:
class BlockedUser{
final String id;
BlockedUser({this.id});
factory BlockedUser.fromMap(Map map){
return BlockedUser(id: map['userId']);
}
static List<BlockedUser> listFromJson(Map<dynamic, dynamic> json){
// adjust to your data set or to use the from map function above
return json.keys.map((user) => BlockedUser(id: user));
}
}
推荐阅读
- angular - AWS Amplify Authentication 在 Ionic / Angular 中使用预构建的 UI 组件导致更改检测问题
- python - 不明白熊猫系列中这个 KeyError 的原因
- reactjs - 如何使用汇总反应正确捆绑和导入 css - 无法从 node_modules 中导入全局 CSS
- javascript - 从列表中选择的对象读取 [object Object]
- excel - 第二次运行相同的 VBAcode 时出现错误消息 462
- javascript - 如何从外部样式表中选择带有 jquery 的 css 类
- android - Jetpack compose 的 TextField 中的 drawableStart 等效项
- javascript - 如何延迟这只是一种可能性
- mongodb - MongoDB 图和引用来自另一个文档的节点和边
- java - 不能在Java中将整数和双倍相乘?