Firestore 迭代文档数据 REACT.JS 中的对象
2021-09-14
589
我尝试在 bookChapters 路径中添加一些数据,但没有成功,有什么建议吗?
export const createNewChapter = (bookId, inputText) => {
return async dispatch => {
dispatch(createNewChapterStart());
try {
const chaptersList = [];
firebase
.firestore()
.doc(`Users/${bookId}/bookChapters/${inputText}`)
.onSnapshot(querySnapshot => {
querySnapshot.forEach(doc => {
const chapters = doc.data().bookChapters;
Object.keys(chapters).forEach(k => {
chaptersList.push({ key: k, name: inputText });
});
});
});
dispatch(createNewChapterSuccess(inputText));
} catch (error) {
dispatch(createNewChapterFail(error));
console.log(error);
}
};
};
1个回答
当您使用
collection()
时,它会返回
CollectionReference
。在本例中,它指向子集合“bookChapters”,但它是一个
map
,如您的屏幕截图所示。如果您想要迭代该映射,则需要先获取该文档,然后读取
bookChapters
字段。
const chaptersList = [];
firebase
.firestore()
.doc(`Users/${bookId}`)
.onSnapshot(querySnapshot => {
querySnapshot.forEach(doc => {
const chapters = doc.data().bookChapters
Object.keys(chapters).forEach((k) => {
chaptersList.push({key: k, name: chapters[k]});
})
});
});
如果要将所有章节存储在同一个文档中,最好将列表存储为数组。
如果您尝试创建子集合,可以单击此按钮创建一个:
Dharmaraj
2021-09-14