Как использовать firestore.FieldValue.serverTimestamp () в запросе - PullRequest
0 голосов
/ 17 апреля 2019

Я хочу создать запрос в облачном хранилище Google Cloud для получения данных, созданных за последние 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 Ответ

1 голос
/ 17 апреля 2019

Вы не можете использовать FieldValue.serverTimestamp() в качестве значения в запросе.

Два возможных обходных пути для этого:

  1. Самый простой способ приблизиться - использовать локальную текущую метку времени клиента: new Date().

  2. Более сложная альтернатива состоит в том, чтобы клиент записал a FieldValue.serverTimestamp(), затем прочитал его обратно и использовал полученное значение в своем запросе.

    Это изолировало бы вас от воздействия любого перекоса в часах клиента.Стоит ли это дополнительной сложности, решать вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...