我从Firebase数据库检索数据时遇到问题。数据结构如下:
posts:{
(Random key):{
post:{
text: "random text"
title: "title of some kind"
username: "username"
}
}
}
,我尝试检索文本的代码是:
database.ref("posts").orderByChild("post").on('value', function(snapshot){
console.log(snapshot.val().text);
})
我是这个Firebase的新手,所以很抱歉这是一个愚蠢的问题。
答案 0 :(得分:1)
您必须像这样更改代码:
database.ref("posts").child(randomKey).on('value', function(snapshot){
console.log(snapshot.child("post").child("text").val());
})
您的snapshot
是DataSnapshot
,它包含一个child()
本身的DataSnapshot
方法。要获取text
字段,您只需使用chield("text")
然后获取val()
。
答案 1 :(得分:1)
首先,您可以对post
上任何属性使用orderBy对结果进行排序。
例如
var sortedpost = firebase.database().ref('posts').orderByChild('post/text');
或者您也可以使用orderByKey
根据文档ID进行排序。
此后,您可以使用on
侦听器获得所需的结果,如下所示。
sortedpost.on('value', function(snapshot){
console.log(snapshot.val());
})