Javascript Firebase中的订单数据
我是Firebase的新手,我将使用以下标准构建从服务器收集的项目列表:Javascript Firebase中的订单数据,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我是Firebase的新手,我将使用以下标准构建从服务器收集的项目列表: 最多10项 按项目值排序(例如“计数”) 这是我的密码 FBRef.orderByChild("count").limitToLast(10).on("child_added", function(snapshot){} 它工作得很好,但是当插入新记录时,是否有Firebase方法可以检查并自动更新列表,如果新项目位于前10名?还是我需要自己去做 var FBRef = new Firebase('yours.fir
- 最多10项
- 按项目值排序(例如“计数”)
FBRef.orderByChild("count").limitToLast(10).on("child_added", function(snapshot){}
它工作得很好,但是当插入新记录时,是否有Firebase方法可以检查并自动更新列表,如果新项目位于前10名?还是我需要自己去做
var FBRef = new Firebase('yours.firebaseio.com');
FBRef.orderByChild("count").limitToLast(5).on("child_added", function(snapshot){
var data = snapshot.val();
var html = "<li>value: " + data.value + " - count: " + data.count + "</li>";
$("#result").prepend(html);
});
$(document).ready(function () {
$("#inputaddbtn").click(add);
});
function add(){
var value = $("#inputvalue").val();
var count = $("#inputcount").val();
$("#inputcount").val("");
$("#inputvalue").val("");
FBRef.push({
value : value,
count : count
})
}
var FBRef=newfirebase('yours.firebaseio.com');
FBRef.orderByChild(“计数”).limitToLast(5).on(“添加的子项”),函数(快照){
var data=snapshot.val();
var html=“值:”+data.value+”-count:“+data.count+” ”;
$(“#结果”).prepend(html);
});
$(文档).ready(函数(){
$(“#inputaddbtn”)。单击(添加);
});
函数add(){
var值=$(“#inputvalue”).val();
变量计数=$(“#输入计数”).val();
$(“#输入计数”).val(“”);
$(“#inputvalue”).val(“”);
推({
价值:价值,
计数:计数
})
}
您需要监视更多事件并处理更多参数,以限制列表
第一步:当某个元素已从该位置移除或(在您的情况下)不在查询范围内时,Firebase将触发child\u removed
事件
您可以处理该事件以从列表中删除子项:
var FBRef = new Firebase('yours.firebaseio.com');
var query = FBRef.orderByChild("count").limitToLast(5);
query.on("child_added", function(snapshot){
var data = snapshot.val();
var html = "<li id='key_"+snapshot.key()+"'>value: " + data.value + " - count: " + data.count + "</li>";
$("#result").prepend(html);
});
query.on("child_removed", function(snapshot){
$('#key_'+snapshot.key()).remove();
});
var FBRef=newfirebase('yours.firebaseio.com');
var query=FBRef.orderByChild(“计数”).limitToLast(5);
query.on(“添加了child_”),函数(快照){
var data=snapshot.val();
var html=“value:“+data.value+”-count:“+data.count+” ”;
$(“#结果”).prepend(html);
});
查询.on(“已删除子项”),函数(快照){
$('#key.'+snapshot.key()).remove();
});
您会注意到,当添加孩子时,我给li
一个id,然后当Firebase告诉我时,根据该id删除li
这包括简单的添加/删除项目。对于处理所有情况的完整应用程序,您还应该处理
child\u changed
和child\u moved
。您可能还需要处理回调的第二个参数,它指示子项需要处理的项的键。但是,您的用例可能不需要处理这些情况,在这种情况下,上述内容就足够了。Firebase将触发所有必要的事件,以保留程序中计数最高的10个项目。但相关代码缺失。你能在JSFIDLE/jsbin中重现你的问题并在这里发布链接(和最少的代码)吗?这就是我所做的。我不想刷新整个列表,所以你能给我一些建议吗?