0

我想在 bookChapters 对象上添加一些数据,比如随机 id 和其中的章节名称,我试过这个但它不起作用,在我添加以前的数据后我还想添加一个新对象“ takeAways”,和前一个一样,在随机 id 对象中。

在此处输入图像描述

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);
    }
  };
};
4

1 回答 1

1

我想知道如何从头开始添加 bookChapters 对象

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

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

  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});
于 2021-09-22T15:41:59.393 回答