我想在Google Cloud Firestore中创建一个查询以检索最近10个小时内创建的数据,但是我想使用服务器日期作为帐户的依据。
类似的东西:
this.afs.collection<any>("posts/", ref => {
let query: firebase.firestore.CollectionReference | firebase.firestore.Query = ref;
tenHoursAgo = firebase.firestore.FieldValue.serverTimestamp() - 10;
query = query.where('created', '>', tenHoursAgo);
return query.orderBy('created');
}).snapshotChanges()
我该怎么做?感谢您的帮助。
答案 0 :(得分:1)
您不能在查询中使用FieldValue.serverTimestamp()
作为值。
两种可能的解决方法:
最简单的联系方式是使用客户端的本地当前时间戳记:new Date()
。
更复杂的选择是让客户端写 FieldValue.serverTimestamp()
,然后将其读回,并在查询中使用结果值。
这将使您免受客户端时钟中任何偏斜的影响。是否值得付出额外的复杂性取决于您自己决定。