#javascript #firebase #google-cloud-firestore
#javascript #firebase #google-облако-firestore
Вопрос:
Новое в firebase. Смотрите выбор ниже, firebase каждый раз возвращает эти записи в случайном порядке. Это известное поведение? Я так много гуглил это, и каждый появляющийся пост посвящен рандомизации порядка. Кроме того, вы можете счесть этот ключ временной метки странным, это другой вопрос, но если у вас есть предложение, как я могу лучше структурировать эти данные, пожалуйста, посоветуйте.
Спасибо!
export const getMonthlyData = async (month, user) => {
const performanceRef = firestore.doc(`performance/${user.id}`);
const doc = await performanceRef.get();
if(doc.exists) {
const docArray = Object.keys(doc.data());
console.log("Docs>>>>>>", docArray);
}
}
Комментарии:
1. Что вы подразумеваете под «этими записями»? Пожалуйста, отредактируйте вопрос, чтобы показать код, который вы используете, и приведите пример результатов, которые вы наблюдаете и которые отличаются от ожидаемых. Следует отметить, что все имена полей являются строками, а документы по сути являются хэш-картами этих полей.
2. @DougStevenson смущен тем, что я этого не уловил, на самом деле Object.keys изменяет данные. Я добавил приведенный выше код и изображение.
3. Вы пробовали .values () или .entries (), чтобы посмотреть, исправит ли это это?
4. (значения / записи имеют тот же порядок, что и ключи.)
5. @Phil Я не серверный разработчик, но, вероятно, могу придумать лучшую структуру в базе данных SQL. Я просто пытаюсь обработать некоторые данные для моего приложения react, над которым я практикуюсь. Если у вас есть лучшее предложение по структурированию этих данных, пожалуйста, сообщите.
Ответ №1:
Firestore SDK не дает гарантии порядка повторения свойств объектов. При вызове Object.keys()
вы получите массив строк с порядком, который не предопределен. Если вам требуется, чтобы у них был порядок, вы должны отсортировать их самостоятельно перед их обработкой.
Комментарии:
1. @user2864740 SDK не дает никаких документированных гарантий, поэтому не следует предполагать так много.
2. @user2864740 На случай, если вы не заметили, я отредактировал ответ.