我有一个带有简单数据的Firebase:
有一个“玩家”列表,每个玩家都有一个自生成的GUID,每个玩家都包含一个值“Count”。根据我的要求(例如使用once()
),我希望能够查询按Count
值排序的玩家。所以,基于Firebase documentation,我使用的是orderByChild()
,但是当我运行代码时,它总是以未定义的形式出现:
var fb = new Firebase("https://morewhitepixels.firebaseio.com/");
fb.child("players").orderByChild("Count").once("value",function(data) {
// do something with data
});
但是这段代码总是返回指向第二行代码的Uncaught TypeError: undefined is not a function
。
我错过了什么?
答案 0 :(得分:6)
我不确定你在回调中做了什么,但这很好用:
fb.child("players").orderByChild("Count").once("value",function(data) {
console.log(data.val());
});
请记住data
参数不是实际数据。这是DataSnapshot
,您必须首先致电val()
。
你可能想要遍历孩子,你可以这样做:
fb.child("players").orderByChild("Count").once("value",function(data) {
data.forEach(function(snapshot) {
console.log(snapshot.val().Count);
});
});
以上示例按您所要求的顺序打印出所有孩子:
120320
181425
185227
202488
202488
202488
202488
245197
245197
487320
或者,您可以改为使用on('child_added'
:
fb.child("players").orderByChild("Count").on("child_added",function(snapshot) {
console.log(snapshot.val().Count);
});