javascript - 如何删除 Firebase 中嵌套集合的一部分?
问题描述
我没有成功删除 Firebase 中嵌套集合的一部分。这是该系列的照片:
这就是我想要做的,删除,例如,0A7vtcos...
在提供的服务内部
async function deleteOfferedServiceFromDatabase() {
const businessRef = await db.collection("businessesPendingAdminApproval")
.doc(businessId)
.collection('offeredServices')
.doc(props.id) //props.id is equivalent to '0A7vtcos...'
.get()
businessRef.delete() //won't work
}
deleteOfferedServiceFromDatabase()
解决方案
您的文档实际上没有任何嵌套的子集合。它在名为“offeredServices”的文档字段中有一个嵌套字段。
如果要删除嵌套字段,则必须通过指定嵌套字段名称(使用字段值点表示法)来更新文档,并使用FieldValue.delete()告诉 Firestore 删除该字段:
async function deleteOfferedServiceFromDatabase() {
const businessRef = db
.collection("businessesPendingAdminApproval")
.doc(businessId)
await businessRef.update(`offeredServices.${props.id}`, FieldValue.delete())
}