javascript - 获取 orderByChild equalTo 中的项目数

标签 javascript angularjs firebase angularfire

我正在查看 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 只恐龙具有该高度。那么我怎样才能获得显示的项目数以显示在 View 上呢?

我尝试使用 console.log(snapshot.key().length);但它显示错误的数字

最佳答案

当您监听 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()

关于javascript - 获取 orderByChild equalTo 中的项目数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33903640/

相关文章:

javascript - 当我尝试通过 Id 获取标签时,为什么我的 jQuery 不工作?

javascript - 如何在 JSHint 中启用不必要的分号警告?

javascript - 将 Controller 放入单独的文件后, Angular rails 应用程序无法工作

javascript - 无法在 firebase 中构建应用程序

Firebase 云消息传递测试不起作用

javascript - 返回多个替换件

javascript - 使用 jQuery 选择的插件进行标签建议

api - AngularJS Protractor E2E 模拟

firebase - 如何在应用程序离线时绕过 Firebase 身份验证?

javascript - Firebase云函数: How to wait for a document to be created and update it afterwards