【发布时间】:2019-08-29 17:47:47
【问题描述】:
我在 firebase 中的数据如下所示:
/users
--key1
--cards
--card1
--name: X
--age: 40
--card2
--name Y
--age 45
--email: xx@yy.com
查询数据的代码如下所示
this.userCardList = this.db.list<Card>('users', ref => ref.orderByChild('email').equalTo(email))
return this.userCardList.snapshotChanges().pipe(
map(changes =>
changes.map(c => ({ key: c.payload.key, ...c.payload.val()}))
)
) ;
我在我的 component.ts 中调用如下
ngOnInit() {
this.cards = this.dataSvc.fetchUserCards(this.core.email).pipe(
map((cards: any) => cards.map(cardObj => {
var c = new Card(cardObj.key)
c.firstName = cardObj._firstName
c.lastName = cardObj._lastName
c.jobTitle = cardObj._jobTitle
return c
}))
);
}
问题是上面的代码没有映射到cards节点而是key1节点。如果将其替换为也不起作用的用户/卡。
我的期望是能够获取卡片节点数据而不是父节点。
【问题讨论】:
-
那么实际输出是什么,期望输出是什么?
-
还有什么
card1和card2包含... -
我已更新问题以回答您的两个问题
-
I want the cards node。那么它应该是什么样子呢?你的意思是cards = [{card1: {...}}, {card2: {...}}]? -
是的,你是对的
标签: angular firebase firebase-realtime-database angularfire2