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() 나이는 숫자 값으로 표현되기 때문입니다.