我在Firebase上保存了学生状态。有了这个,我有了一个旅行屏幕,开始时应该过滤与旅行日期相同的存在。但是当我给console.log()时,它什么也不会打印。如何将Firebase日期属性(时间戳)与日期属性进行比较?
this.presencaSubscription = this.viagemService.carregarAlunosPorDataConfirmacao(this.data).subscribe(dados => {
this.presencas = dados;
console.log(this.presencas)
在服务中
carregarAlunosPorDataConfirmacao(data: Date) {
return this.firestore.collection<Presenca>('presenca', ref => ref.where('startTime', '==', data)).snapshotChanges().pipe(
map(dados => {
return dados.map(snap => {
const data = snap.payload.doc.data();
const uid = snap.payload.doc.id;
return { uid, ...data };
})
})
)
}
答案 0 :(得分:0)
Firestore以微秒的精度存储date/time values as timestamps。除非您小心存储标准化为特定微秒偏移的那些值(不幸的是,您没有在问题中显示这些值),否则两个Date
值不可能完全相同(对于==
比较成功)。
处理日期的两种最常见的方法是:
startTime
和2019-09-28T09:00:00.000Z
之间具有2019-09-28T09:00:59.999Z
的任何文档。