Firebase提供了多種方式來過濾數(shù)據(jù)。
下面我們來了解第一個(gè)和最后一個(gè)數(shù)據(jù)限制是什么。
limitToFirst方法返回從第一個(gè)開始向前的指定數(shù)量的項(xiàng)目。limitToLast方法返回從最后一個(gè)開始向前的指定數(shù)量的項(xiàng)目。下面這個(gè)例子是展示如何工作的。 由于在數(shù)據(jù)庫中只有三個(gè)運(yùn)動(dòng)員數(shù)據(jù),這里將限制查詢返回一個(gè)運(yùn)動(dòng)員數(shù)據(jù)。
示例
現(xiàn)在,參考下面的例子 -
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8" />
<title>FireBase Example</title>
<script src="https://www.gstatic.com/firebasejs/4.9.1/firebase.js"></script>
<script>
// Initialize Firebase
var config = {
apiKey: "AIzaSyAOSPYpgn7T_bKa6VbCaSeQlsw-3p3zqDs",
authDomain: "yiibai-firebase.firebaseapp.com",
databaseURL: "https://yiibai-firebase.firebaseio.com/",
projectId: "yiibai-firebase",
storageBucket: "yiibai-firebase.appspot.com",
messagingSenderId: "334522625008"
};
firebase.initializeApp(config);
var firstPlayerRef = firebase.database().ref("players/").limitToFirst(2);
var lastPlayerRef = firebase.database().ref('players/').limitToLast(2);
//console.log("====== limitToFirst(2) ========");
firstPlayerRef.on("value", function(data) {
console.log(data.val());
}, function (error) {
console.log("Error: " + error.code);
});
console.log("====== limitToLast(2) ========");
lastPlayerRef.on("value", function(data) {
console.log(data.val());
}, function (error) {
console.log("Error: " + error.code);
});
</script>
</head>
<body>
控制臺(tái)會(huì)記錄第一個(gè)查詢得到前兩個(gè)運(yùn)動(dòng)員數(shù)據(jù),第二個(gè)查詢得到最后兩個(gè)運(yùn)動(dòng)員數(shù)據(jù)。結(jié)果如下所示 -
我們也可以使用其他Firebase過濾方法。 例如:startAt(),endAt()和equalTo()可以與排序方法結(jié)合使用。在下面的例子中,我們將把它和orderByChild()方法結(jié)合起來。
示例
讓我們來看看下面的例子。參考以下代碼 -
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8" />
<title>FireBase Example</title>
<script src="https://www.gstatic.com/firebasejs/4.9.1/firebase.js"></script>
<script>
// Initialize Firebase
var config = {
apiKey: "AIzaSyAOSPYpgn7T_bKa6VbCaSeQlsw-3p3zqDs",
authDomain: "yiibai-firebase.firebaseapp.com",
databaseURL: "https://yiibai-firebase.firebaseio.com/",
projectId: "yiibai-firebase",
storageBucket: "yiibai-firebase.appspot.com",
messagingSenderId: "334522625008"
};
firebase.initializeApp(config);
var firstPlayerRef = firebase.database().ref("players/").limitToFirst(2);
var playersRef = firebase.database().ref("players/");
playersRef.orderByChild("name").startAt("Kobe").on("child_added", function(data) {
console.log("Start at filter: " + data.val().name);
});
playersRef.orderByChild("name").endAt("Maxsu").on("child_added", function(data) {
console.log("End at filter: " + data.val().name);
});
playersRef.orderByChild("name").equalTo("Kobe").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);
});
</script>
</head>
<body>
結(jié)果如下所示 -