如何在Firestore中插入对象数组? #AskFirebase

时间:2018-10-15 09:44:29

标签: java firebase kotlin google-cloud-firestore

enter image description here我要在Firestore中插入对象数组吗?我可以从Firestore控制台进行添加,但是从Java进行添加却无法正常工作?在这里,我附加了控制台快照,代码是:

val map = HashMap<String, Any>()
    map["one"] = request.records
    dayFormDoc.set(map)

request.records是一个数组。 #AskFirebase

2 个答案:

答案 0 :(得分:0)

尝试一下

Android

Map<String, Object> docData = new HashMap<>();

docData.put("listExample", Arrays.asList(1, 2, 3));

java

ArrayList<Object> arrayExample = new ArrayList<>();
Collections.addAll(arrayExample, 5L, true, "hello");
docData.put("arrayExample", arrayExample);

更多信息https://firebase.google.com/docs/firestore/manage-data/add-data

希望它能提供全部帮助。

答案 1 :(得分:0)

您不能简单地将阵列添加到Cloud Firestore数据库中,因为会出现如下错误:

  

原因:java.lang.IllegalArgumentException:无效的数据。不支持数组;改用列表(在字段数组中找到)

因此,要解决此问题,应按照以下代码行将数组转换为列表。

对于Android:

Map<String, Object> map = new HashMap<>();
String[] array = {"One", "Two", "Three"};
map.put("array", Arrays.asList(array));
dayFormDoc.update(map);

对于Kotlin:

val map = HashMap<String, Any>()
val array = arrayOf("One", "Two", "Three")
map["array"] = Arrays.asList(*array)
dayFormDoc.update(map)