Вы можете связать порядок сортировки с логическим ИЛИ.
objects.sort(function (a, b) {
return a.strength - b.strength || a.name.localeCompare(b.name);
});
addValueEventListener
является асинхронным и возвращается немедленно. Обратный вызов, который вы передали ему, будет вызываться через некоторое неизвестное время, когда данные будут доступны. Это означает, что ваш метод retrieve
также немедленно возвращается с начальным значением trips
, которое является пустым. Чтобы сформулировать это по-другому - при первом вызове retrieve
он возвращает пустой список объектов Trip.
Если вы хотите, чтобы ваш ListView отображал данные, вам следует вместо этого установить его адаптер после того, как вы собрали все эти поездки. Это означает, что вы должны сделать это внутри обратного вызова addValueEventListener
.