尝试将一组对象保存到 Firestore 并将其加载回来
Posted
技术标签:
【中文标题】尝试将一组对象保存到 Firestore 并将其加载回来【英文标题】:Trying to save an array of objects to Firestore and load it back 【发布时间】:2021-05-01 22:14:05 【问题描述】:如何将对象数组保存到 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();
【问题讨论】:
这能回答你的问题吗? Function DocumentReference.set() called with invalid data. Unsupported field value: a custom Budget object 【参考方案1】:您似乎正试图在文档中存储一个空数组,然后开始监听更新?
在它里面有数据之前,我不会存储空数组,或者将它与样板数据一起存储。
在您的代码中,您在向其添加对象之前调用了“saveLibrary()”。我认为这就是导致问题的原因。
我还鼓励您在 .set() 函数中使用 merge:true,这样您就不会覆盖文档。 ref here
【讨论】:
以上是关于尝试将一组对象保存到 Firestore 并将其加载回来的主要内容,如果未能解决你的问题,请参考以下文章
我目前正在尝试通过将字符串重新定义为数字来将一组整数保存在 int 数组中,然后将其存储在数组中
使用flutter将多张图片上传到firestore并获取它的下载URL并将所有URL保存到firebase
将图像存储在 Firebase Storage 中并将元数据保存在 Firebase Cloud Firestore(测试版)中