# #javascript #firebase #algorithm
Вопрос:
Есть ли способ изменить порядок объекта или объектов в базе данных Firebase в реальном времени? (Firebase сохраняет его в отсортированном виде по ключам)
Я не мог этого понять, так что это то, что я делаю на стороне клиента
- Преобразование в массив объектов
- Отсортируйте массив по значению свойства (смотрите ниже)
- Измените положение (например, с 4-го на 1-е) и обновите необходимые индексы
- Пройдите по массиву и обновите индекс всех элементов в firebase
Мой цикл для шага 3 немного слишком сложен, есть ли эффективный способ ES6 для достижения того же самого?
Шаг 1: Данные из firebase:
[
id1: {
name: 'name1',
index: 3
},
id2: {
name: 'name2',
index: 0
},
id3: {
name: 'name3',
index: 1
},
id4: {
name: 'name4',
index: 2
}
]
Шаг 2: Отсортируйте его
const sortedList = list.sort((a, b) =>
a.val.index > b.val.index ? 1 : b.val.index > a.val.index ? -1 : 0
)
output = [
id2: {
name: 'name2',
index: 0
},
id3: {
name: 'name3',
index: 1
},
id4: {
name: 'name4',
index: 2
}
id1: {
name: 'name1',
index: 3
},
]
Шаг 3: Здесь мне нужна помощь с функцией обновления индексов при перемещении с одной позиции на другую