Добавление данных в firebase в порядке последней публикации (React js)

#reactjs #firebase #google-cloud-firestore

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

Вопрос:

Я пытаюсь добавить «сообщения» в firebase db, но они отображаются не по порядку, они случайным образом вставляют данные в базу данных, есть ли способ вставить их по порядку? Поэтому всякий раз, когда кто-то публикует, он появляется первым.

Я использую это

 db.collection('posts').add({
            
        });
  

Спасибо!

Ответ №1:

Документы в Firestore на самом деле не имеют установленного порядка. В консоли Firebase они отображаются в лексикографическом порядке с использованием идентификатора документа. При использовании add() клиент сгенерирует случайный идентификатор для документа. Таким образом, документ будет отображаться в консоли Firebase в произвольном порядке.

Если вы хотите упорядочить документы по времени, вам следует добавить поле метки времени в документ. Обычно приложения используют временную метку сервера в качестве значения поля для генерации временной метки на сервере. Затем вы можете упорядочить запрос, используя поле, чтобы получить документы в порядке временных меток.

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

1. Спасибо! Я использовал временную метку сервера с функцией упорядочения по временной метке, и она работает так хорошо!

Ответ №2:

Firestore не имеет встроенного порядка для документов. Если вы хотите упорядочить документы по данным создания, вы должны убедиться, что в документах есть поле с этими данными создания. Затем вы можете указать консоли Firebase выполнить сортировку по значению этого поля.

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