我想在 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()
我该怎么做?感谢您的帮助。
最佳答案
您不能使用 FieldValue.serverTimestamp()
作为查询中的值。
两种可能的解决方法:
最简单的接近方法是使用客户端的本地当前时间戳:
new Date()
。更复杂的替代方案是让客户端写入一个
FieldValue.serverTimestamp()
,然后读回该值,并在查询中使用结果值。这将使您免受客户端时钟偏差的影响。这是否值得额外的复杂性由您决定。
关于node.js - 如何在查询中使用 firestore.FieldValue.serverTimestamp(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55729204/