如何在查询中使用firestore.FieldValue.serverTimestamp()

时间:2019-04-17 13:55:19

标签: node.js google-cloud-firestore

我想在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()

我该怎么做?感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您不能在查询中使用FieldValue.serverTimestamp()作为值。

两种可能的解决方法:

  1. 最简单的联系方式是使用客户端的本地当前时间戳记:new Date()

  2. 更复杂的选择是让客户端 FieldValue.serverTimestamp(),然后将其读回,并在查询中使用结果值。

    这将使您免受客户端时钟中任何偏斜的影响。是否值得付出额外的复杂性取决于您自己决定。