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()*メソッド内で数値を渡します。

Firebase Filtering Data Start End Equal