获取 orderByChild equalTo 中的项目数
Get number of items in orderByChild equalTo
我正在查看 firebase 文档以了解如何根据查询获取保存在我的数据库中的项目数量,我查看了这段代码(我认为)正是我正在寻找的内容,但不知道如何获取显示的项目数。
var ref = new Firebase("https://dinosaur-facts.firebaseio.com/dinosaurs");
ref.orderByChild("height").equalTo(0.6).on("child_added", function(snapshot) {
console.log(snapshot.key());
});
console.log 应显示 2 个项目,因为有 2 个恐龙具有该高度。那么我怎样才能获得显示的项目数以显示在视图上呢?
我试过 console.log(snapshot.key().length);但是它显示了一个错误的数字
你可以试试这个:
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());
});
当您侦听 child_added
事件时,回调中的项目数将始终为 1
。当您(例如)想要将每个项目添加到列表时,这非常有用。但是当你想计算项目的数量时,它就不太好了。
对于需要处理多个item的操作,监听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()
。
我正在查看 firebase 文档以了解如何根据查询获取保存在我的数据库中的项目数量,我查看了这段代码(我认为)正是我正在寻找的内容,但不知道如何获取显示的项目数。
var ref = new Firebase("https://dinosaur-facts.firebaseio.com/dinosaurs");
ref.orderByChild("height").equalTo(0.6).on("child_added", function(snapshot) {
console.log(snapshot.key());
});
console.log 应显示 2 个项目,因为有 2 个恐龙具有该高度。那么我怎样才能获得显示的项目数以显示在视图上呢?
我试过 console.log(snapshot.key().length);但是它显示了一个错误的数字
你可以试试这个:
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());
});
当您侦听 child_added
事件时,回调中的项目数将始终为 1
。当您(例如)想要将每个项目添加到列表时,这非常有用。但是当你想计算项目的数量时,它就不太好了。
对于需要处理多个item的操作,监听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()
。