firebase / Сортировка документов путем увеличения поля

#javascript #firebase #google-cloud-firestore

#javascript #firebase #google-облако-firestore

Вопрос:

Как я могу отсортировать документы, увеличив поле «время»? мой код

     function renderOrder(doc) {
this.afs.collection('values',ref=>ref.OrderBy('time','desc')).valueChanges();
}
button.addEventListener("click", function () {this.afs.collection('values').add({ time: firebase.firestore().FieldValue.serverTimestamp()});
  

Комментарии:

1. Что вы имеете в виду, говоря об увеличении поля «время»?

2. @ThomasLombart когда я создаю документ, текущее время записывается в поле «time»; эти документы должны быть отсортированы по времени добавления (извините за мой английский)

Ответ №1:

Сортировка документов в firestore firebase выполняется firebase.Если вы хотите получить документ на основе времени создания, вам нужно создать поле, скажем, time и сохранить метку serverTimestamp. Теперь при запросе вашего документа вы можете использовать предложение OrderBy для получения документа.

Чтобы добавить documnet:

 this.afs.collection('values').add({
time:firebase.firestore.FieldValue.serverTimestamp()
});
  

Для извлечения documnet:

 this.afs.collection('values',ref=>ref.OrderBy('time','desc')).valueChanges();
  

это даст вам видимый набор документов.При подписке вы получите массив документов, где первым элементом массива является окончательно добавленный документ

Комментарии:

1. когда я запускаю функцию, она отображает ошибку «Не удается прочитать свойство ‘serverTimestamp’, значение которого не определено»

2. пожалуйста, попробуйте с этим, this.afs.collection(‘values’).add({ time: firebase.firestore. Значение поля.Метка времени сервера() });

3. если проблема решена, пожалуйста, примите и проголосуйте за мой ответ, чтобы другие могли легко найти решение

4. когда я запускаю функцию, она отображает ошибку «Не удается прочитать свойство ‘serverTimestamp’, значение которого не определено»

5. какая функция.?