2017-10-29 5 views

답변

6

당신은 (1 년 1 월 1970 년 이후 초) Unix time과 날짜 객체를 저장할 수 있습니다. 그런 다음 간단한 사용이 위치를 다음과 같이 선택할 수 있습니다

collectionRef.where("startTime", ">=", "1506816000").where("startTime", "<=", "1507593600")

을 Btw는 - 당신이 JS 또는 노드 뭔가를 구축하는 경우 앱에서 유닉스 시간을 날짜로 변환하려면 (우수한 라이브러리 moment을 사용할 수 있습니다).

+0

감사합니다,하지만 난 이미 단지 첨부 된 스크린 샷 –

+0

확인과 같은 날짜 형식의 데이터가 : 쿼리의 예입니다. firebase에 따르면 datetime은 파이어 스토어에서 지원되는 데이터 유형입니다. startTime이 문자열 또는 datetime 객체입니까? – DauleDK

+0

dateTime 객체입니다. –

7

나는 'DUEDATE'필드가 타임 스탬프 클라우드 경우 FireStore에 (그리고 문자열 또는 로) 저장 가지고 있기 때문에, 나는 2017 년에 기한와 송장 문서를 얻기 위해 이런 짓을 :

 let start = new Date('2017-01-01'); 
     let end = new Date('2018-01-01'); 

     this.afs.collection('invoices', ref => ref 
      .where('dueDate', '>', start) 
      .where('dueDate', '<', end) 
     ); 

참고 : dueDate 필드는 firebase에 Date() 개체와 함께 저장됩니다. 예 : this.doc.dueDate = new Date('2017-12-25')

+0

Firestore의 스크린 샷을 찍으면 거기에서 가능합니까? 시각적으로 datetime 객체 또는 문자열 간의 차이점을 알려주고 싶습니까? – DauleDK

+0

예 @DauleDK 모양 : https://imgur.com/a/draQo 세 번째 필드는 Date() js 개체로 채워졌으며 타임 스탬프로 저장되었습니다 (Firebase는 변환을 만들었습니다). 그리고 이미지에서 UTC로 포맷 된이 타임 스탬프를 볼 수 있지만 Date 객체로 저장했습니다. 마지막으로 필드를 가리키는 타임 스탬프 필드인지 확인합니다. 제 경우에는 "타임 스탬프"를 의미하는 "Marca de tiempo"를 봅니다. – Capy

+1

와우는 정말 멋지다. 파이어 스토어 쿼리 문서에 분명히 추가되어야 할 것이있다. firebase-firestore 콘솔에 대한 많은 업데이트가있을 것 같은 느낌입니다. "Marce de tiempo"- 가장 가치있는 교훈은 오늘 배웠습니다, gracias) – DauleDK

2

해결 방법은 Date.now()를 사용하고 firebase에서 타임 스탬프 서비스를 사용하지 않는 것입니다. 예를 들어 파이어 스토어가 26 시간/분을 사용하는 경우 대신 1514271367000과 같이 밀리 초 단위의 시간 값으로 작업해야합니다. 12/2017 1:56:07 GMT-0500 (-05)은 작동하지 않습니다.

this.fsService.afs.collection('chats/4bY1ZpOr1TPq8bFQ3bjS/finance/123+finance/12345' 
 
     , ref => ref.orderBy('hour').startAt(1514184967000).endAt(1514271367000)) 
 
     .valueChanges().subscribe(data =>{ 
 
     this.mensajes = data; 
 
     })

+0

Firestore가 Date.now()를 숫자 데이터로 저장하면 괜찮습니까?나는 그 이유와 이해의 용이함 때문에 날짜가 더 나은 경우가있는 것처럼 느낍니다. – Telion