我在Firestore中具有以下数据结构:
{
items: [
itemId1: {},
itemId2: {},
itemId3: {}
],
users: [
userId1: {
itemIds: [
"itemId1",
"itemId3"
]
}
]
}
此数据结构的目标是使许多用户可以访问相同项目并进行协作。因此,将项目转移到每个用户中将非常低效且困难。
如果我有userId(userId1
,我想查询项目集合中用户itemIds
数组中的所有项目。
因此,在此示例中,它将返回[itemId1: {}, itemId3: {}]
。
我的应用程序是使用Angular(7.2.1
)和Angularfire的应用程序。
如果我的数据结构固有存在缺陷,请告诉我,我可以尝试更改它们。
提前谢谢。
答案 0 :(得分:1)
this.afs.doc('users/' + userId1).valueChanges().subscribe(itemIds=>{
itemIds.forEach(itemId=>{
this.afs.doc<Item>('items/'+ itemId).valueChanges().subscribe(item=> {
console.log(item);
});
})
});
您可以尝试这个。 第一个 afs.doc 从 users 集合中检索itemId数组 forEach 遍历所有 itemIds ,并对文档ID为_itemId
的 items 集合进行另一个Firestore查询我没有运行代码。但它应该清除有关如何查询此类结构的想法。希望能回答您的问题