2016-11-12 261 views
2

我的火力表後獲得屬性是這樣的:火力地堡 - 如何通過子查詢

posts 
    randomId 
    username 
    age 

我希望能夠通過子查詢,然後而不是返回整個對象只返回屬性我需要。

subscribePostsAgeForUsername(username: string): Observable<string[]>{ 
    return this.af.database.list('posts', { 
    query: { 
     orderByChild: 'username', 
     equalTo: username 
    } 
}); 

這個截至目前只是返回整個對象。我只想回到年齡。

+1

您正在考慮將Firebase視爲不是關係數據庫。如果你只想要年齡,你可能不得不改變你的模式,這樣你就能得到想要的結果。 –

回答

0

您可以使用地圖運營商從rxjs

return this.af.database.list('posts', { 
    query: { 
     orderByChild: 'username', 
     equalTo: username 
    } 
}).map(posts => posts.map(post => post.property_you_need)); 

注:當您使用此方法,你仍然可以從angularfire列表整個對象,只是地圖簡化它。如果您的主要原因是僅通過獲取該屬性來提高性能,那麼它在火力點上不會那樣工作。您需要根據您的需求重新構建您的數據庫。