Firestore 在文档数据中的对象上添加数据 REACT.JS

Firestore add data over an object within a document's data REACT.JS

我想在 bookChapters 对象上添加一些数据,比如一个随机 ID 和其中的章节名称,我试过了但是没有用,在我添加之前的数据之后我也想在随机 id 对象中添加一个新对象“takeAways”,与上一个对象一样。

export const createNewChapter = (bookId, inputText) => {
  return async dispatch => {
    dispatch(createNewChapterStart());
    try {
firebase
        .firestore()
        .doc(`Users/${bookId}/bookChapters/${inputText}`)
        .onSnapshot(querySnapshot => {
          //There I want to add the chapters to the firestore database
        });
      dispatch(createNewChapterSuccess(inputText));
    } catch (error) {
      dispatch(createNewChapterFail(error));
      console.log(error);
    }
  };
};

I wanna know how to do add from scratch the bookChapters object

数据库截图显示bookChaptersobject是一张地图。因此,要添加(填充)这个 object,您需要生成一个简单的 JavaScript object,其中包含一些属性作为“键:值”对。

按照这些思路,假设章节标题在一个数组中:

  function arrayToObject(arr) {
    var obj = {};
    for (var i = 0; i < arr.length; ++i) {
      obj[i] = arr[i];
    }
    return obj;
  }

  const chapterList = ['Intro', 'Chapter 1', 'Chapter2', 'Conclusion'];
  const bookChaptersObj = arrayToObject(chapterList);

  firebase.firestore().doc(`Users/${bookId}`).update(bookChaptersObj);

或者,如果文档不存在:

firebase.firestore().doc(`Users/${bookId}`).set(bookChaptersObj, {merge: true});