【问题标题】:removing an object from firestore 9 array using arrayRemove()?使用arrayRemove() 从firestore 9 数组中删除一个对象?
【发布时间】:2022-11-10 18:05:30
【问题描述】:

我正在尝试从 firestore 中的数组中删除一个对象,但遇到了障碍,执行删除的要求或参考是什么?对象中的一个键值是否足以进行删除,或者该对象是否应该与被删除的对象相同?

const deleteWeek = async () => {
        const docRef = doc(db, 'Weeks', id);
        await updateDoc(docRef, {
          weeks: arrayRemove({
            weekId: '7518005f-7b10-44b6-8e0a-5e41081ee064',
          }),
        });
      };
      deleteWeek();
    }

但是数据库中的一周看起来像这样

{name ,"Week 2"
days : [/*data all kinds*/]
weekId : "7518005f-7b10-44b6-8e0a-5e41081ee064"}

【问题讨论】:

    标签: javascript firebase google-cloud-firestore


    【解决方案1】:

    如果它是一个对象数组,那么你需要知道整个对象才能使用arrayRemove() 例如,如果一个文档看起来像这样:

    {
      ...data
      weeks: [
        { 
          name: "Week 2",
          days: [/*data all kinds*/]
          weekId: "7518005f-7b10-44b6-8e0a-5e41081ee064"}
        }
      ]
    }
    

    您必须在arrayRemove() 中传递整个星期对象。最好将此类数据存储在子集合中,以便您可以查询/删除特定的数据。

    【讨论】:

    • 包括子项目?喜欢 days 数组中的数据吗?
    • @Richardson 是的。
    • @Richardson ofc 包含数据!!否则将无法正常工作!你是火力基地的新手吗?
    猜你喜欢
    • 2023-02-08
    • 1970-01-01
    • 2019-06-23
    • 2021-10-15
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多