FieldValue.delete()只能出现在更新数据的顶层 - Firestore

J. *_*Doe 0 firebase google-cloud-firestore

这是我的数据库:

在此输入图像描述

如何在地图私有下删除lotteryID中的密钥"2"?我试过这个:

db.collection("users").document(currentUser.uid).updateData([
"private": ["lotteryIDs" : ["2" : FieldValue.delete()]]
])
Run Code Online (Sandbox Code Playgroud)

现在我得到了标题中描述的错误.使用:

"private/lotteryIDs/\(id)": FieldValue.delete
Run Code Online (Sandbox Code Playgroud)

显然效果不好.我在文档中找不到它,它们只解释了如何删除顶级字段,而不是删除对象中的字段.

Mic*_*uer 6

您应该能够使用带有updateData的虚线字段路径:

db.collection("users").document(currentUser.uid).updateData([
"private.lotteryIDs.2" : FieldValue.delete()])
Run Code Online (Sandbox Code Playgroud)

  • 我能够使用`db.collection("users").document(currentUser.uid).update("private.lotteryIDs.2":FieldValue.delete())`,但不能使用数组.`updateData`不是我看到的方法. (2认同)