如何更新数组中的地图数据?颤振火力基地

Posted

技术标签:

【中文标题】如何更新数组中的地图数据?颤振火力基地【英文标题】:How to update map data in Array? Flutter firebase 【发布时间】:2020-08-12 22:27:52 【问题描述】:

我使用颤振。我想仅在 2020 年 4 月 26 日这一周在 Firebase 中将 CH 的值更新为 false。什么时候有办法?

Ex.cord 失败:

_firestore.collection('member').document(uidMember[index])
.updateData('statistics': ['$submit': val,]);

【问题讨论】:

读取文档,修改内存中的数组,然后写回文档。 你能提供一些代码吗?您在哪里尝试阅读数据以及与此问题相关的任何内容? 我不知道获取有关该部分的数据。 Ex._firestore.collection('member').document(uidMember[index]) .updateData('statistics': ['$submit': val,]); X 失败 【参考方案1】:

鉴于您共享的 Firestore sn-p,您可以执行以下代码来更新数据:

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);
);

注意:我尚未对此进行测试,因此您可能需要对其进行调整,但应该是一个很好的起点。

【讨论】:

【参考方案2】:

首先创建一个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);

【讨论】:

以上是关于如何更新数组中的地图数据?颤振火力基地的主要内容,如果未能解决你的问题,请参考以下文章

如何在我的微调器中使用 getItemAtPosition 从谷歌地图中的火力基地使用 android studio

从其他特定集合中获取文档计数颤振火力基地

颤振和火力基地和子集合

我必须从哪里找到 DatabaseEvent 类? (颤振)(火力基地)

将图像从颤振上传到火力基地(没有任何反应)

在谷歌地图标记上显示信息