Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Firestore-如何向包含地图列表的文档添加新的键值对?_Java_Firebase_Google Cloud Firestore - Fatal编程技术网

Java Firestore-如何向包含地图列表的文档添加新的键值对?

Java Firestore-如何向包含地图列表的文档添加新的键值对?,java,firebase,google-cloud-firestore,Java,Firebase,Google Cloud Firestore,我有一个文件,看起来像: 因此,文档只有一个数组,其中包含多个映射。对于其中一些映射(仅当映射包含值为“red”的键“color”和值为“food3”的键“name”)时,我想添加一个新的键-值对(例如,键“test1”,值“test2”) 因此,该文档应该如下所示: 我如何在Java中做到这一点?不确定这是否重要,但并非所有地图都遵循相同的结构。其中一些映射也可以包含数组。您必须阅读文档,修改内存中的列表数组,然后将其全部内容更新回文档。“这是没有捷径的。”道格·史蒂文森说,所以我在内存中

我有一个文件,看起来像:

因此,文档只有一个数组,其中包含多个映射。对于其中一些映射(仅当映射包含值为“red”的键“color”和值为“food3”的键“name”)时,我想添加一个新的键-值对(例如,键“test1”,值“test2”)

因此,该文档应该如下所示:


我如何在Java中做到这一点?不确定这是否重要,但并非所有地图都遵循相同的结构。其中一些映射也可以包含数组。

您必须阅读文档,修改内存中的列表数组,然后将其全部内容更新回文档。“这是没有捷径的。”道格·史蒂文森说,所以我在内存中修改了它。现在我有一个列表,看起来像:包含新数据的列表。如何重写文档,使其删除旧数据而使用新列表?它是否是
apifourt=db.collection(“data”).document(“one”).set(list)因为集合将自动覆盖旧列表?列表是否正确,因为映射也可能包含数组?我不明白firestore中的映射如何同时包含键值对和其他数据结构(如列表)。请编辑问题以显示未按预期方式工作的代码,并解释您的问题所在。