繁体   English   中英

如何将 object 添加到 Firebase 字段集合中的数组?

[英]How can I add an object to an array inside a Firebase Field Collection?

我正在尝试创建一个待办事项风格的应用程序。 我正在尝试创建一个包含名称和标签字段的卡片。 这是我的数据结构的示例。 我想创建另一个卡片数组,但要使用 id:“nhl”。

[![在此处输入图片描述][1]][1]

我想创建一个卡片数组(蓝色框内的所有内容),但要创建 ID 为“nhl”的 1 object。

这是我的 createCard function 的样子:

      const createCard = async () => {
    await updateDoc(doc(db, "users", currentUser.uid), {
      labels: arrayUnion({
        activeLabel: [
          {
            name: name,
            tags: tags,
          },
        ],
      }),
    });
    getData();
    findLabel(activeLabel);
    // toast.success("Tags Created!");
    console.log("Tags Created");
  };

这是调用 function 的地方:

 return (
    <div className="cards">
      <div className="cards__create">
        <input
          onChange={(e) => setName(e.target.value)}
          className="cards__input"
          placeholder="Enter title..."
        ></input>
        <textarea
          onChange={(e) => setTags(e.target.value)}
          className="cards__input cards__input--textarea"
          placeholder="Enter tags..."
        ></textarea>
        <img
          onClick={createCard}
          className="cards__add"
          src={addIcon}
          alt="plus sign icon"
        ></img>
      </div>

arrayUnion()不适用于您的情况。 正如文档中所解释的那样,“数组中尚不存在的每个指定元素都将添加到末尾。”

因此, arrayUnion()不会更新标签数组的第二个元素,而是会创建一个具有相同id字段id:"nhl"和两张卡片的新数组元素。

你需要先阅读Firestore文档,修改你前端的labels数组,然后写回Firestore。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM