- Firebase 教程
- Firebase - 首頁
- Firebase - 概述
- Firebase - 環境設定
- Firebase - 資料
- Firebase - 陣列
- Firebase - 寫入資料
- Firebase - 寫入列表資料
- Firebase - 事務性寫入資料
- Firebase - 讀取資料
- Firebase - 事件型別
- Firebase - 解除回撥
- Firebase - 查詢
- Firebase - 資料過濾
- Firebase - 最佳實踐
- Firebase - 郵箱認證
- Firebase - Google 認證
- 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”,因為我們正在搜尋具有該名稱的玩家。
第四個示例展示瞭如何將過濾器與“age”值結合使用。由於年齡用數字表示,因此我們在 startAt() 方法中傳入數字而不是字串。
廣告