Как вы сортируете по приоритету при заказе по ребенку в Firebase?

0

Я в основном хочу это сделать:

var ref = new Firebase("[myapp].firebaseio.com");
var things = ref.child("things");
var thingsQuery = things.orderByPriority().orderByChild("owner").equalTo("[ownerKey]")
var angularReadyThings = $firebaseArray(thingsQuery);

Я использую возможности запросов Firebase orderByChild() и equalTo(), чтобы получить подмножество данных и создать $ firebaseArray из этого запроса, чтобы отобразить часть списка вещей под определенным узлом. Пользователь может перетащить список, чтобы установить приоритет $ для каждого элемента, и я могу правильно сохранить приоритет, но данные не возвращаются по приоритету (что, на мой взгляд, имеет смысл). Я не могу использовать orderByPriority() вместе с orderByChild(), как у меня есть выше в строке 3 (несколько orderBys не поддерживаются). Использование orderBy: фильтр "$ priority" на моем ng-repeat (я использую угловое значение для этого) работает до тех пор, пока я не перетащил/не отсортировал список, после чего элементы вернутся к их восстановленному (неупорядоченному) состоянию.

Есть ли способ использовать orderByChild() и equalTo() и получить результаты, упорядоченные по приоритету от Firebase?

Теги:
firebase

1 ответ

2

Firebase может сортировать/фильтровать только по одному условию, будь то ключевое, дочернее свойство или приоритет.

Похоже, вы хотите фильтровать только дочернее свойство, а затем заказывать по приоритету. В этом случае вы можете сделать ref.orderByChild("owner").equalTo(ownerKey) с запросом Firebase и сделать переупорядочивание на стороне клиента

Боковое замечание: нет причин по-прежнему использовать старые приоритеты Firebase для заказа. Достаточно просто добавить именованное дочернее свойство с тем же значением.

  • 0
    Так устарел ли onChildMoved ?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню