【发布时间】:2020-11-29 19:02:39
【问题描述】:
参考"Update elements in an array:
我能理解如何将元素添加到现有数组。但是如果不存在,我想创建一个新数组,然后在单个 Firestore 调用中向其中添加数据。该怎么做?
-
如果数组不存在则不添加数据。
.update("arrayName", FieldValue.arrayUnion("arrayData")) -
如果不存在则创建一个新数组并添加数据,但数据会被覆盖而不是附加。
.set(hashMapOf("arrayName" to arrayListOf("arrayData")), SetOptions.merge())
我想进行单个 Firestore 调用,
- 检查数组是否存在,如果不存在则创建新数组。
- 然后它检查数据是否存在于数组中,如果不存在则将数据添加到数组中。
是否有直接的解决方案,或者我们是否需要多次调用才能实现?
编辑:
我正在使用的代码:
return firebaseFirestore
.collection("collection1")
.document("document1")
.collection("collection2")
.document("document2")
.update("arrayName", FieldValue.arrayUnion("arrayData"))
@Alex 正如您所指出的,如果数组不存在,则会创建该数组,并将数据添加到其中。 发现我的问题是由另一个问题引起的。
在我的场景中,“collection1”、“document1”、“collection2”和“document2”尚未创建。我的代码只有在要添加数组的文档(“文档”)已经创建时才有效。
你能帮我解决这个问题吗?
【问题讨论】:
标签: android firebase kotlin google-cloud-firestore