我正在尝试使用startAt()和endAt()方法查询Firebase的日期范围。(Angular6) 对于日期选择,我使用角度材料MatDatepicker模块。
q_startDate; q_endDate;
getStartDate(event: MatDatepickerInputEvent<Date>) {
this.q_startDate = event.value.toISOString();}
我定义了 q_startDate 和 q_endDate 实数,并使用 getStartDate 和 getEndDate 方法推送了数据。
const myCollection = this.afs.collection<objInterface>('collection_name', ref=> {
let query: firestore.CollectionReference | firestore.Query = ref;
query = query.orderBy('date_field', 'desc');
query = query.startAt(this.q_startDate);
query = query.endAt(this.q_endDate);
return query;
});
在此查询中,当我评论 query = query.endAt(this.q_endDate); 时,它起作用。
如何解决此问题,我还想同时包含查询q_endDate?
FIX
我通过将多余的日期另存为秒来解决它。
//Add extra field as q_date
const tsSeconds: number = firestore.Timestamp.now().seconds;
{q_date:tsSeconds}
//Now we can query like this:
this.afs.collection('collection_name, ref=>
ref.where('q_date','>=',start_date).
where('q_date','<=',end_date))