我用Flutter。我想仅在26/4/2020的一周中将Firebase中的CH的值更新为false。什么时候有办法?
失败的密码:
_firestore.collection('member').document(uidMember[index])
.updateData({'statistics': [{'${submit}': val,}]});
答案 0 :(得分:2)
鉴于您共享的Firestore代码段,您可以执行以下代码来更新数据:
var ref = _firestore.collection('member').document(uidMember[index]);
ref.get() => then(function(snapshot) {
List<dynamic> list = List.from(snapshot.data['statistics']);
//if you need to update all positions of the array do a foreach instead of the next line
list[0].CH = false;
ref.updateData({
'statistics': list
}).catchError((e) {
print(e);
});
}.catchError((e) {
print(e);
});
注意:我尚未对此进行测试,因此您可能需要对其进行调整,但这应该是一个很好的起点。
答案 1 :(得分:0)
首先创建一个包含更新项目的 List
。使用列表创建一个 Map
,然后将此映射更新到 Cloud Firestore:
List<Map<String, dynamic>> updatedList = [...];
Map<String, dynamic> updatedData = {
'statistics': updatedList,
};
var collection = FirebaseFirestore.instance.collection('collection');
collection
.doc('doc_id')
.update(updatedData);