有关Firebase列表的快速问题。
我试图访问多个列表来迭代它们在一个对象中。该对象如下所示:
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')
时,密钥可用。
当我请求“用户”时,这就是它的样子。作为清单:
正如您所看到的,键位于对象内部而不在其外部($ key)。如果密钥实际上是密钥(例如user.playlists),我该如何访问这些对象。
答案 0 :(得分:1)
对于任何有兴趣的人我都明白了。我使用.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) : []