【发布时间】:2020-09-23 18:24:13
【问题描述】:
我想在集合中添加一个数组类型的字段。
如果该字段不存在,则创建它。如果存在,则用新的数组值覆盖它。
该字段应称为 macAddress,它的类型为 String 数组
我尝试了以下方法:
val macInput = setting_mac_text.text.toString()
val macArray = macInput.split(",")
val macList = Arrays.asList(macArray)
val data =
hashMapOf(Pair(FirebaseConstants.USER_MAC_ADDRESS, macArray))
//save it in firebase
db.collection(FirebaseConstants.ORGANIZATION)
.document(orgID + ".${FirebaseConstants.USER_MAC_ADDRESS}")
.set(FieldValue.arrayUnion(macList))
.addOnCompleteListener { task ->
if (task.isSuccessful) {
Log.d(TAG, "successfully inserted")
} else {
Log.d(TAG, " failed ${task.exception}")
}
}
还尝试像这样插入列表本身和哈希映射
val data = hashMapOf(Pair(FirebaseConstants.USER_MAC_ADDRESS, macArray))
db.collection(FirebaseConstants.ORGANIZATION)
.document(orgID)
.set(data))
但它一直给我java.lang.IllegalArgumentException: Invalid data. Nested arrays are not supported
我在这里做错了什么?
【问题讨论】:
标签: android firebase kotlin google-cloud-firestore