Javascript 尝试将对象数组保存到Firestore并将其加载回

Javascript 尝试将对象数组保存到Firestore并将其加载回,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,如何将对象数组保存到Firestore并重新加载?我得到这个错误 未捕获的FirebaseError:使用调用函数DocumentReference.set() 无效数据。不支持的字段值:自定义对象(位于 文件(用户手册/图书馆) 这是我将其保存到Firebase并在修改myLibrary阵列后加载的代码 let myLibrary = []; let firestore = firebase.firestore(); let docRef = firestore.doc("user

如何将对象数组保存到Firestore并重新加载?我得到这个错误

未捕获的FirebaseError:使用调用函数DocumentReference.set() 无效数据。不支持的字段值:自定义对象(位于 文件(用户手册/图书馆)

这是我将其保存到Firebase并在修改myLibrary阵列后加载的代码

let myLibrary = [];
let firestore = firebase.firestore();

let docRef = firestore.doc("userBooks/library");
saveLibrary = function () {
  docRef
    .set({
      userLibrary: myLibrary,
    })
    .then(function () {
      console.log("Library saved!");
    })
    .catch(function (error) {
      console.log("Got an error: ", error);
    });
};
saveLibrary()
getUpdate = function () {
  docRef.onSnapshot(function (doc) {
    if (doc && doc.exists) {
      const myData = doc.data();
      myLibrary = myData.userLibrary;
      console.log(myData.userLibrary);
    }
  });
};

// Here I add multiple objects to the array myLibrary.

saveLibrary();
getUpdate();

看起来您正试图在文档中存储一个空数组,然后开始侦听更新

在空数组中包含数据之前,我不会存储它,或者使用样板数据存储它

在代码中,在向其添加对象之前调用“saveLibrary()”。我认为这就是问题的根源


我还鼓励您在.set()函数中使用{merge:true},这样您就不会覆盖文档

这回答了你的问题吗?