【发布时间】:2019-01-16 00:47:34
【问题描述】:
我是 Firebase 的新手,对 Angular 有基本的了解。这是我的学习示例项目。
我的 firestore db 有三个集合 - parent、children、parent_child
parents :
pid1 - { name: Parent1 }
pid2 - { name: Parent2 }
children:
cid1 - { name: Child1 }
cid2 - { name: Child2 }
parent_child:
pcid1 - {
parent: /parents/pid1 //(a reference to Parent1)
child: /children/cid2 //(a reference to Child2)
}
我的打字稿类变量id 中有值pid1。需要查询与此父级关联的所有子级。我的努力到此结束,这不起作用,
constructor(private db: AngularFirestore) { }
let id = 'pid1';
this.db.collection<any[]>('parent_child', ref => ref.where('parent.id', '==', id))
.valueChanges()
.subscribe(
data => console.log(data) // Prints empty array
)
大多数博客/SO 答案都解释了对内部集合的查询,而不是这个。
编辑 1:
感谢@ricardo-smania 指导我。这是直接的解决方案
使用 AngularFirestore.doc() 方法创建了对 id = 'pid1' 的父项的引用,并在 where 子句中使用了 AngularFirestoreDocument.ref 属性。
constructor(private db: AngularFirestore) { }
const id = 'pid1';
const pObj = this.db.doc('parents/'+id);
this.db.collection('parent_child', ref => ref.where('parent', '==', pObj.ref))
.valueChanges()
.subscribe(
data => console.log(data) // Prints the array with references
)
这只会获取给定parent 的parent_child 集合。 但我仍然不确定如何访问子属性
【问题讨论】:
-
我是否正确地解释为您正在尝试查询所有
parent_child文档以查找具有与给定 ID 匹配的parent属性值的文档? -
是的@joseph-webber,这就是我对这个查询的意思。我最终需要的是获取与该父级关联的所有子级的属性
标签: angular firebase angularfire2