#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()
для его установки и проверки его значения в правилах безопасности, поскольку временные метки на стороне клиента могут быть изменены клиентом.