Фильтр товаров по дочернему дочернему элементу в Firebase

0

Я пытаюсь выяснить, как фильтровать продукты на основе их дочерних узлов в Firebase.

Моя настройка выглядит следующим образом:

products/
     product1
        /author: 12345
        /title: "Awesome"
        /description: "more awesome"
     product2
        /author: 67890
        /title: "Awesome"
        /description: "more awesome"

Как я могу запросить Firebase так, чтобы я извлекал только те продукты, для которых он имеет значение child($productId).child(author) equals 12345?

Я пробовал следующее, но это явно не работает. Мне нужен способ фильтрации на подхдире:

var ref = new Firebase(FBURL);

// Attach an asynchronous callback to read the data at our posts reference
ref.child("products").child('$productId').child('author').equalTo(12345).on("value", function(snapshot) {
      console.log(snapshot.val());
    }, function (errorObject) {
      console.log("The read failed: " + errorObject.code);
});
  • 0
    Упорядочение / фильтрация дочерними элементами более низкого уровня в настоящее время невозможна в Firebase См. Stackoverflow.com/questions/27207059/…
  • 0
    Я неправильно понял ваш вопрос изначально. Фильтрация по свойству дочернего узла возможно. Ответ ниже.
Теги:
firebase
nosql

1 ответ

3
Лучший ответ

Просто используйте orderByChild():

ref.child("products").orderByChild('author').equalTo(12345)...

Это будет упорядочивать каждый дочерний элемент node под products по свойству author, а затем возвращать только те, которые имеют значение 12345.

См. Документация Firebase по запросам.

  • 0
    Хм, думаю, твой первый комментарий был прав. Настройка: products / $ productId / author, где $ productId является динамическим. Ребенок продуктов не является автором или это не имеет значения?
  • 0
    Возможен заказ по стоимости имущества ребенка. Фрагмент кода, который я дал, выполнит это.
Показать ещё 1 комментарий

Ещё вопросы

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