2016-07-16 3 views
1

나는 중포 기지의 다음 JSON 구조를 가지고 :Firebase - 날짜 범위의 개체를 검색하려면 어떻게해야합니까?

{ 
    "-KGX6kYg1NO6d9hn-8um" : { 
    "phase" : "A", 
    "timestamp" : "12-18-2015 19:43:37" 
    }, 
    "-KGXOGSxa3vompZX9UO_" : { 
    "phase" : "B", 
    "timestamp" : "03-28-2016 15:28:21" 
    }, 
    "-KMUvszD-vm3Nu02sofd" : { 
    "phase" : "A", 
    "timestamp" : "04-03-2014 03:57:56" 
    } 
} 

날짜의 범위를 통해 타임 스탬프 키에 의해 개체를 필터링 할 수 있나요 .. 예를 들어, I 월에서 타임 스탬프 개체를 얻으려면? 오늘 날짜로 2015. 가능하지 않다면 날짜별로 개체를 필터링하는 더 좋은 방법은 무엇입니까? ... iOS 앱을 개발하고 있습니다.

감사합니다.

+4

날짜 형식 대신 유닉스 타임 스탬프로 타임 스탬프를 저장할 수 있다면 더 좋을 것입니다. 이 경우 타임 스탬프를 기반으로하는 필터링은 쉽습니다. – triandicAnt

답변

2

스냅 샷 데이터를 timestamp으로 정렬하고 데이터를 입력 할 때 한도 인 timestamp을 정의 할 수 있습니다.

let refHandle = tableRef.queryOrderedByChild("timestamp").queryEndingAtValue("some_time_stamp").queryLimitedToLast(kPostLimit + 1).observeEventType(FIRDataEventType.Value, withBlock: { (snapshot) in 
      for item in snapshot.children { 

      } 
     }) 
:

let refHandle = tableRef.queryOrderedByChild("timestamp").queryEndingAtValue("timestamp1").observeEventType(FIRDataEventType.Value, withBlock: { (snapshot) in 
      for item in snapshot.children { 

      } 
     }) 

또한 같은 queryLimitedToLast 또는 queryLimitedToFirst를 추가하여 원하는 레코드 수를 적용 할 수 있습니다 는 예를 들어, 당신은 특정 타임 스탬프 timestamp1로 모든 데이터를 참조 핸들러가 같아야합니다

또한 Firebase에서 일반적인 SQL 쿼리에 대해 다음과 같은 내용을보고 싶습니다 : post.

관련 문제