Firebase-filtering-data
提供:Dev Guides
Firebase-データのフィルタリング
Firebaseには、データをフィルタリングするいくつかの方法があります。
最初と最後に制限
最初と最後の制限について理解しましょう。
- limitToFirst メソッドは、最初のアイテムから始まる指定された数のアイテムを返します。
- limitToLast メソッドは、最後の項目から始まる指定された数の項目を返します。
この例は、これがどのように機能するかを示しています。 データベースには2人のプレーヤーしかないため、クエリを1人のプレーヤーに制限します。
例
次の例を考えてみましょう。
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);
});
コンソールは、最初のクエリから最初のプレーヤーを記録し、2番目のクエリから最後のプレーヤーを記録します。
Firebase Filtering Data Limit to First Last
その他のフィルター
他の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 という名前のプレーヤーからフィルターします。 コンソールは両方のプレイヤーを記録します。 この名前でクエリを終了しているため、2番目のクエリは「Amanda」を記録します。 3番目は「John」を記録します。これは、その名前のプレーヤーを検索しているためです。
4番目の例は、フィルターを「年齢」値と組み合わせる方法を示しています。 文字列の代わりに、年齢が数値で表されるため、* startAt()*メソッド内で数値を渡します。