2017-05-07 3 views
0

안녕하세요 각 어린이에 날짜가 설정된 Firebase 노드가 있습니다. 내 질문에, 나는 과거에 일어난 일들을 모두 제거하고 싶습니다. 배열을날짜 별 Firebase 노드

중포 기지

workouts 
    -{key} 
     - title:"My Workout" 
     - date: "2017-04-1T10:30:27.250Z" 
    -{key2} 
     - title:"The Workout" 
     - date: "2017-05-1T12:00:27.250Z" 

JS (Ionic2, angularfire2)

this.allEvents = this.af.database.list('/events', { 
    query: { 
    orderByChild: 'date' 
    } 
}); 

답변

1

당신은 쿼리 중포 기지 문서에서

을 제한하는 .endAt (endTime- 사용자)를 종료합니다. https://firebase.google.com/docs/database/admin/retrieve-data#range-queries

var ref = db.ref("workouts"); 
    ref.orderByChild("date").endAt(endTime).on("child_added", function(snapshot) { 
    console.log(snapshot.key); 
    }); 

그런 다음 목록을 반복하고 각을 삭제 한

+0

덕분에 당신이 도움을하지만 난 당신에게 팁을 수정하기 위해 필요한 것 :. 이 (endTime- 사용자 = 새로운 날짜() toISOString하자를); this.allEvents = this.af.database.list ('/ 이벤트', { 쿼리 : { orderByChild : '날짜', startAt : endTime- 사용자, } }); – Xerri

+0

의견이 도움이되고 문제를 해결하면 다음과 같이 표시해주세요. :) – Bergur

0
  1. 대하여 반복 지난 날짜와 현재의 날짜를 비교한다.
  2. 과거에 발생한 이벤트 인 경우 삭제하십시오. angularfire documentation에서 :

$ 데이터베이스에서 로컬 배열에서 레코드를 제거 (recordOrIndex)

를 제거합니다. 이 메서드는 서버가 일 때 레코드가 삭제 된 후에 해결되는 약속을 반환합니다. 여기에는 삭제 된 레코드에 대한 Firebase 참조가 포함됩니다. 배열 인덱스 또는 배열에있는 항목에 대한 참조를 허용합니다.

var list = $firebaseArray(ref); 
var item = list[2]; 
list.$remove(item).then(function(ref) { 
    ref.key === item.$id; // true 
});