Ros*_*des 2 javascript json firebase firebase-realtime-database
所以我正在建立一个使用firebase的音乐平台,用户可以上传他们的歌曲.当用户登录时,我将他们的数据保存在"usuarios"节点上.当他们上传一首歌时,我会推送到"musicas"节点(usuarios的孩子).这样,我知道是谁上传了这首歌.
但问题是:我想获得所有最近上传的15首歌曲的列表.我怎么做?我的数据结构错了吗?
这是我试过的:
var musicsRef = firebase.database().ref('usuarios').orderByChild('musicas');
musicsRef.on('value', function(snapshot) {
console.log(snapshot.child('musicas');
});
Run Code Online (Sandbox Code Playgroud)
使用Firebase(与大多数NoSQL数据库一样),您通常最终会根据应用程序使用它的方式对数据进行建模.因此,如果您需要查找最近上传的歌曲的全局列表,您应该保留以下列表:
songsByDate
$pushIdOfSong: true
Run Code Online (Sandbox Code Playgroud)
您会注意到我们在此列表中没有保留真正的价值.它只是每首歌的ID和true值.这被称为二级索引和命令,我们在创建可伸缩数据结构的文档中对其进行了解释.
使用该结构,您可以查询:
var recents = ref.child('songsByDate').orderByKey().limitToLast(15);
recents.on('child_added', function(snapshot) {
var key = snapshot.key;
// load the song by its key
});
Run Code Online (Sandbox Code Playgroud)
我强烈建议阅读有关NoSQL数据建模的这篇文章.
| 归档时间: |
|
| 查看次数: |
2623 次 |
| 最近记录: |