Firebase“添加”数据到现有文档不起作用

我有一个在注册过程中创建的文档,该文档创建具有以下属性的文档:


username: "GOOOOD"


现在,我正在尝试调用文档的add新属性,因此它看起来像这样:firstName


username: "GOOOOD"

firstName: "Roger"

但是,该add功能似乎不起作用:


function ProfileContainer() {

  const [profile, setProfile] = useState();

  const [{ user }, dispatch] = useStateValue();

  const [firstName, setFirstName] = useState("");


  // add first and last name

  const handleClick = () => {

    if (user) {

      db.collection("users").doc(user).collection("profile").doc(user).add({

        firstName: firstName,

      });

    }

  };



  return (

    <div className="profileContainer">

            <div className="name__input">

              <input

                type="text"

                placeholder="First Name"

                onChange={(e) => setFirstName(e.target.value)}

                value={firstName}

              />

            </div>

          <button onClick={handleClick}>Update</button>

        </div>

      </div>

    </div>

  );

}

不幸的是,该add功能似乎不起作用。


我收到以下错误:


TypeError: firebase_utils__WEBPACK_IMPORTED_MODULE_4 _.db.collection(...).doc(...).collection(...).doc(...).add 不是函数


set似乎有效,但我不想删除整个文档。


慕沐林林
浏览 77回答 1
1回答

拉风的咖菲猫

add() 总是创建一个新文档。如果这不是您想要做的,那么您不应该使用它。如果您尝试向现有文档添加新字段,则应使用update(),如文档中所示。      db.collection("users").doc(user).collection("profile").doc(user).update({               firstName: firstName,       });
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript