Android 从Google Cloud Firestore中删除地图元素

Android 从Google Cloud Firestore中删除地图元素,android,firebase,kotlin,google-cloud-firestore,Android,Firebase,Kotlin,Google Cloud Firestore,我正在尝试从Google Cloud Firestore中删除地图 我在Firestore中使用以下代码进行更新 fun updateData(userId: String, values: Map<String, Any>) = db.collection(COLLECTION_DATA).document(Id).update(values) fun updateData(userId:String,value:Map)= db.collection(colle

我正在尝试从Google Cloud Firestore中删除地图

我在Firestore中使用以下代码进行更新

fun updateData(userId: String, values: Map<String, Any>) =
        db.collection(COLLECTION_DATA).document(Id).update(values)
fun updateData(userId:String,value:Map)=
db.collection(collection_DATA).document(Id).update(value)
该文档包含为google登录生成的已用id,文档中的一个字段是
地图
。我正在尝试删除字段的内容(删除特定的
对)

调用上述firestore函数时,我将
(userId,mapOf(“FieldName.${Key}”)传递给FieldValue.arrayRemove(Value))
作为参数

但在更新Firestore中的值后,该键被忽略,值被清除


如果我将
(userId,mapOf(“FieldName”)传递给FieldValue.arrayRemove(Key))
作为参数,那么整个
映射将被删除(这是我想要的),但执行更新后字段的数据结构将转换为数组。

FieldValue.arrayRemove()
仅用于数组类型的字段。它在这里不起作用,因为您实际上没有使用任何数组或列表

您只需要使用删除任意映射键及其值

updateData(userId, mapOf("FieldName.${Key}" to FieldValue.delete()))

我不清楚你到底想删除什么。请编辑问题,以解释更新前文档中到底有什么内容,以及更新后您希望文档包含什么内容。如果文档的屏幕截图不容易用文字说明,那么它可能会有所帮助。我已经编辑了这个问题。我希望现在可以理解。谢谢你的回复,非常感谢。成功了。我以前尝试过使用FieldValue.delete,但用错了!