【发布时间】:2020-01-18 09:14:36
【问题描述】:
我正在尝试重构数据库,但在尝试使用其中的数据填充表时遇到了麻烦。
这是我的数据库的新结构。
所以,我们可以看到 newLayout > User ID > reviews,这是一个地图数组。我可以注销整个评论数组 - 但无法弄清楚如何访问甚至注销评论数组中的每个单独的对象/地图。
this.firebaseService.getNewReports().subscribe(docs => {
this.reports = docs.map(item => {
return {
id: item.payload.doc.id,
...item.payload.doc.data()
};
});
this.reports.forEach(element => {
console.log(element.reviews);
});
});
每个评论数组都被注销
我什至无法注销一个对象 - 我认为即使 console.log(element.reviews[0]) 也可以,但它说“无法读取未定义的属性 0”。我只能退出整个评论数组。
我正在寻找的是一次迭代并从每个文档中检索每个评论的内容,并将它们分配到一个大对象数组中,以用作 MatTableDataSource 的源。
就这样
[
{county: Cork, dateAdded: " ", ...},
{county: Cork, dateAdded: " ", ...},
{county: Clare, dateAdded: " ", ...}
]
在我之前的简单数据库结构中,这是一个简单的操作,因为我可以检索整个集合并将其分配给一个数组。该结构对于其他功能来说是不切实际的,所以现在我包含了有意义的 ID。
任何帮助将不胜感激,这花费的时间变得非常愚蠢。我已经在互联网和文档中寻找解决方案,但我开始觉得我从一开始就做错了我的数据库结构。
【问题讨论】:
-
那么实际输出是什么(包括(字符串化 JSON)代码,而不是图像)以及预期输出是什么。我个人不明白你对
newLayout > ID > 0{ } 1{ } 2{ }的意思 -
道歉@AJT82 - 我已经厌倦了试图弄清楚这一点,以至于连贯打字的意志力是一场斗争。我刚刚编辑了帖子,希望我的困境现在更清楚了:)
-
根据您希望的输出更新了我的答案! :) 希望对您有所帮助!
标签: arrays angular typescript google-cloud-firestore maps