我正在按时间戳查询文档,它返回一个空数组。但是,当我使用"=="时它有效,例如:.where('date', '==',timestamp),并在我使用'>='或'<='时返回空数组。
我也尝试将时间戳转换为日期对象和字符串,但没有成功。
注意:firestore 中的日期字段是Timestamp类型。
我正在查询集合中日期大于“2018-08-03”的文档。
下面是交易集合(左)和文档(右)的图片,它们应该是返回的文档数组的一部分,因为日期大于“2018-08-03”
下面是我的代码。
const firstDay = new Date('2018-08-03');
const timestamp1 = admin.firestore.Timestamp.fromDate(firstDay);
const trans = [];
const docRef = db.collection('Users').doc(uid).collection('transactions').where('item_id', '==', item_id)
.where('date', '>=', timestamp1);
await docRef.get()
.then((snapshot) => {
snapshot.forEach((doc) => {
trans.push({ transaction_id: doc.id, transaction: doc.data() });
});
})
.catch(err => new Error('cannot get the documents', err));
预期结果:应该是一个交易日期大于上面指定的数组。
实际结果:空数组。
由于它为相等==工作,我认为>=和<=会工作。我在这里缺少什么吗?
狐的传说
大话西游666
拉莫斯之舞
相关分类