我要在Firestore中插入对象数组吗?我可以从Firestore控制台进行添加,但是从Java进行添加却无法正常工作?在这里,我附加了控制台快照,代码是:
val map = HashMap<String, Any>()
map["one"] = request.records
dayFormDoc.set(map)
request.records是一个数组。 #AskFirebase
答案 0 :(得分:0)
尝试一下
Map<String, Object> docData = new HashMap<>();
docData.put("listExample", Arrays.asList(1, 2, 3));
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)