首页 > 解决方案 > 如何删除 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()

标签: javascriptreactjsfirebasegoogle-cloud-firestore

解决方案


您的文档实际上没有任何嵌套的子集合。它在名为“offeredServices”的文档字段中有一个嵌套字段。

如果要删除嵌套字段,则必须通过指定嵌套字段名称(使用字段值点表示法)来更新文档,并使用FieldValue.delete()告诉 Firestore 删除该字段:

async function deleteOfferedServiceFromDatabase() {
  const businessRef = db
    .collection("businessesPendingAdminApproval")
    .doc(businessId)

   await businessRef.update(`offeredServices.${props.id}`, FieldValue.delete())
}

推荐阅读