2017-08-03 62 views
0

我想限制从firebase返回的数据的数量,目前它带回的一切显然不是很好。Firebase .limitToFirst()不起作用

是否有可能带回最新的10行?我正在查看limitToFirst(限制),但不能完全得到在我的代码中工作的语法。任何帮助?感谢

当前工作代码:

var myDataRef = new Firebase("https://xxxxx.firebaseio.com/"); 
     $('#btnSubmit').click(function() { 
     var u = $('#nameIpt').val(); 
     var m = $('#msgIpt').val(); 
     myDataRef.push({name: u, text: m}); 
     $('#msgIpt').val(''); 
     }); 

     myDataRef.on('child_added', function(snapshot) { 
     var msg = snapshot.val(); 
     displayMsg(msg.name, msg.text); 
     }); 

我尝试以下

var myDataRef = new Firebase("https://xxxxx.firebaseio.com/"); 
     $('#btnSubmit').click(function() { 
     var u = $('#nameIpt').val(); 
     var m = $('#msgIpt').val(); 
     myDataRef.push({name: u, text: m}); 
     $('#msgIpt').val(''); 
     }); 
     myDataRef.limitToFirst(10).on('child_added', function(snapshot) { 
     var msg = snapshot.val(); 
     displayMsg(msg.name, msg.text); 
     }); 
+0

您当前的代码不使用'limitToFirst'。你能证明你的尝试吗? –

+0

更新了我试过的内容 – BCLtd

+0

控制台内的任何消息?根据https://firebase.google.com/docs/database/web/lists-of-data#filtering_data,您应该使用limitToLast代替 –

回答

1

你缺少要么orderByChild()orderByValue()orderByKey()orderByPriority()这里。

您需要添加任何对他们的使用endAt()startAt()equalTo()isEqual()limitToFirst()limitToLast()之前。

例子:

myDataRef.orderByChild(refChild).limitToFirst(10).on('child_added', function(snapshot) { 
    var msg = snapshot.val(); 
    displayMsg(msg.name, msg.text); 
}); 
+0

嗨,它说myDataRef.orderByKey不是一个功能 – BCLtd

+0

你是什么意思?尝试其他顺序,orderByChild()代替。 – UmarZaii

+0

感谢您的回复。在控制台这是我得到的错误消息。同样的编辑答案 – BCLtd