Flutter 将dart中地图的地图更新到firestore
用户可以保存他的姓名和照片。用户可以跳过以上载个人资料照片。因此,我已经在数据库中存储了用户的数据。所以,我不想将null设置为Flutter 将dart中地图的地图更新到firestore,flutter,dart,google-cloud-firestore,Flutter,Dart,Google Cloud Firestore,用户可以保存他的姓名和照片。用户可以跳过以上载个人资料照片。因此,我已经在数据库中存储了用户的数据。所以,我不想将null设置为photo.url。如何为此创建地图 Future<void> updateUser({String name, String uid, String url}) { Map<String, dynamic> _map = <String, dynamic>{ 'info': {
photo.url
。如何为此创建地图
Future<void> updateUser({String name, String uid, String url}) {
Map<String, dynamic> _map = <String, dynamic>{
'info': {
'name': name
},
};
if (url != null) {
// if user upload profile photo I want to add url to inside `info.photo`
// got an error when try like this
// _map['info']['photo'] = {'url': url};
// this way is replace info, it's mean 'name' key is removed
// _map['info'] = {
// 'photo': {'url': url}
// };
}
return _db.collection('users').doc(uid).set(_map, SetOptions(merge: true));
}您可以尝试以下方法:
Map<String, dynamic> child = <String, dynamic>{'name': 'name'};
Map<String, dynamic> _map = <String, dynamic>{"info": child};
Map<String, dynamic> info = _map["info"];
info.update(
'photo',
(value) => null,
ifAbsent: () => {'url': 'new url'},
);
_map.update('info', (value) => info);
print(_map);
Map child={'name':'name'};
映射(Map={“info”:child};
地图信息=_地图[“信息”];
信息更新(
"照片",,
(值)=>null,
ifAbsent:()=>{'url':'new url'},
);
_map.update('info',(value)=>info);
打印(地图);
我使用了一个子映射来强制类型转换。您可以尝试以下方法:
Map<String, dynamic> child = <String, dynamic>{'name': 'name'};
Map<String, dynamic> _map = <String, dynamic>{"info": child};
Map<String, dynamic> info = _map["info"];
info.update(
'photo',
(value) => null,
ifAbsent: () => {'url': 'new url'},
);
_map.update('info', (value) => info);
print(_map);
Map child={'name':'name'};
映射(Map={“info”:child};
地图信息=_地图[“信息”];
信息更新(
"照片",,
(值)=>null,
ifAbsent:()=>{'url':'new url'},
);
_map.update('info',(value)=>info);
打印(地图);
我使用了一个子映射来强制类型转换。如果使用
if
Map<String, dynamic> _map = <String, dynamic>{
'info': {
'name': name,
if (url != null) 'photo' : {'url': url}
},
};
Map\u Map={
“信息”:{
“名称”:名称,
如果(url!=null)'photo':{'url':url}
},
};
如果
Map<String, dynamic> _map = <String, dynamic>{
'info': {
'name': name,
if (url != null) 'photo' : {'url': url}
},
};
Map\u Map={
“信息”:{
“名称”:名称,
如果(url!=null)'photo':{'url':url}
},
};
错误的兄弟。请检查我的问题。我想在另一张地图(photo
)中添加url
)是的,我看到了你所做的,但你明白了。干得好。对不起,错了。我想在info
映射中添加photo
映射您的结果如下{name:name,photo:{url:newurl}
。我想要{'info':{'name':name,'photo':{'url':url}}
是的。它正在工作。但是我实际的地图
非常复杂。有这么多条件。有没有其他方法呢?错误的兄弟。请检查我的问题。我想在另一个地图(照片
)中添加url
)是的,我看到了你所做的,但是你明白了。做得好。对不起,这是错的。我想在信息中添加照片地图你的结果是这样的{name:name,photo:{url:newurl}
。我想{info':{name':name,'photo':{url:url}}
是的。它正在工作。但我认为实际的地图非常复杂。有这么多的条件。还有其他方法吗?