- Firebase 教程
- Firebase - 主页
- Firebase - 概述
- Firebase - 环境设置
- Firebase - 数据
- Firebase - 数组
- Firebase - 写入数据
- Firebase - 写入列表数据
- Firebase - 写入事务数据
- Firebase - 读取数据
- Firebase - 事件类型
- Firebase - 分离回调
- Firebase - 查询
- Firebase - 过滤数据
- Firebase - 最佳实践
- Firebase - 电子邮件身份验证
- Firebase - 谷歌身份验证
- Firebase - Facebook 身份验证
- Firebase - Twitter 身份验证
- Firebase - Github 身份验证
- 匿名认证
- Firebase - 离线功能
- Firebase - 安全
- Firebase - 部署
- Firebase 有用资源
- Firebase - 快速指南
- Firebase - 有用的资源
- Firebase - 讨论
Firebase - 过滤数据
Firebase 提供了多种过滤数据的方法。
限制为第一个和最后一个
让我们了解第一个和最后一个的限制是什么。
limitToFirst方法返回从第一个项目开始的指定数量的项目。
limitToLast方法返回从最后一项开始的指定数量的项目。
我们的例子展示了它是如何工作的。由于数据库中只有两名球员,因此我们将查询限制为一名球员。
例子
让我们考虑下面的例子。
var firstPlayerRef = firebase.database().ref("players/").limitToFirst(1); var lastPlayerRef = firebase.database().ref('players/').limitToLast(1); firstPlayerRef.on("value", function(data) { console.log(data.val()); }, function (error) { console.log("Error: " + error.code); }); lastPlayerRef.on("value", function(data) { console.log(data.val()); }, function (error) { console.log("Error: " + error.code); });
我们的控制台将记录第一个查询中的第一个玩家,以及第二个查询中的最后一个玩家。
其他过滤器
我们还可以使用其他 Firebase 过滤方法。startAt ()、endAt()和equalTo()可以与排序方法结合使用。在我们的示例中,我们将其与orderByChild()方法结合起来。
例子
让我们考虑下面的例子。
var playersRef = firebase.database().ref("players/"); playersRef.orderByChild("name").startAt("Amanda").on("child_added", function(data) { console.log("Start at filter: " + data.val().name); }); playersRef.orderByChild("name").endAt("Amanda").on("child_added", function(data) { console.log("End at filter: " + data.val().name); }); playersRef.orderByChild("name").equalTo("John").on("child_added", function(data) { console.log("Equal to filter: " + data.val().name); }); playersRef.orderByChild("age").startAt(20).on("child_added", function(data) { console.log("Age filter: " + data.val().name); });
第一个查询将按名称对元素进行排序,并过滤名为Amanda 的玩家。控制台将记录两个玩家。第二个查询将记录“Amanda”,因为我们将以该名称结束查询。第三个将记录“John”,因为我们正在搜索具有该名称的玩家。
第四个示例展示了如何将过滤器与“年龄”值结合起来。我们在startAt()方法中传递数字而不是字符串,因为年龄是由数字值表示的。