我正在查看firebase文档,查找如何根据查询获取保存在我的数据库中的项目数量,然后我查看了这段代码(我认为)正是我正在寻找的内容,但不要知道如何获得显示的项目数量。
NoMethodError (undefined method `http_basic_authenticate_with' for #
< StaticPagesController:0x000000090d8de8 >):
app/controllers/application_controller.rb:49:in `authenticate'
console.log应显示2个项目,因为有2个恐龙具有该高度。那么如何才能显示在视图上显示的项目数?
我尝试使用console.log(snapshot.key()。length);但它显示错误的数字
答案 0 :(得分:2)
当您收听child_added
事件时,回调中的项目数始终为1
。这非常适合您(例如)想要将每个项目添加到列表中。但是当你想要计算物品的数量时,它并不是很好。
对于需要处理多个项目的操作,可以更轻松地收听value
事件:
var ref = new Firebase("https://dinosaur-facts.firebaseio.com/dinosaurs");
ref.orderByChild("height").equalTo(0.6).on("value", function(snapshot) {
console.log(snapshot.numChildren());
})
此代码段还显示了另一个难题:DataSnapshot.numChildren()
。
答案 1 :(得分:0)
你可以试试这个:
var ref = new Firebase("https://dinosaur-facts.firebaseio.com/dinosaurs");
var shortDinosaurs = ref.orderByChild("height").equalTo(0.6);
console.log(shortDinosaurs.length);
shortDinosaurs.on("child_added", function(snapshot) {
console.log(snapshot.key());
});