2017-08-03 103 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