Javascript Firebase列表与对象
关于Firebase列表的快速问题 我正在尝试访问多个列表,以循环访问单个对象中的列表。该对象如下所示:Javascript Firebase列表与对象,javascript,json,firebase,firebase-realtime-database,angularfire2,Javascript,Json,Firebase,Firebase Realtime Database,Angularfire2,关于Firebase列表的快速问题 我正在尝试访问多个列表,以循环访问单个对象中的列表。该对象如下所示: user : { playlists: {}, // List 1 joined: {}, // List 2 favorites: {} // List 3 } 现在我知道我可以通过执行三个单独的请求访问所有三个列表,如: firebase.list('user/playlists'); firebase.list('user/joined'); fire
user : {
playlists: {}, // List 1
joined: {}, // List 2
favorites: {} // List 3
}
现在我知道我可以通过执行三个单独的请求访问所有三个列表,如:
firebase.list('user/playlists');
firebase.list('user/joined');
firebase.list('user/favorites');
但我正试图清理我的代码,并通过使用以下工具将其全部整合在一起:
firebase.list('user');
然后访问它在用户内部返回的所有列表。唯一的问题是,列表没有返回键,它只是说“object”。当我使用firebase.object('user')
时,键可用
这是我请求“用户”作为列表时的样子:
Check if exists If exists, map obj to array else assign to empty array
(result.favorites) ? Object.values(result.favorites) : []
正如您所看到的,键位于对象内部,而不是对象外部($key)。我如何访问这些对象,就像我访问的键实际上就是键一样(例如,user.playlists) 对于任何感兴趣的人,我都知道了。我使用
.map()
将对象的部分转换为数组
getPlaylist(_playlistId: string, _query: Object = {}) {
return this._database.object(`playlists/${_playlistId}`, _query).map(
result => {
return {
info: result.info,
leader: result.leader,
favorites: (result.favorites) ? Object.values(result.favorites) : [],
followers: (result.followers) ? Object.values(result.followers) : [],
songs: (result.songs) ? Object.values(result.songs) : []
};
}
);
}
例如,收藏夹是我希望作为列表返回的对象:
Check if exists If exists, map obj to array else assign to empty array
(result.favorites) ? Object.values(result.favorites) : []