2016-08-06 6 views
-1

Это структура данных базы данных о бомбах.Как получить данные из firebase

{ 
    products: { 
    product1: { 
     id : 1, 
     name: "p1", 
     brand: "brand1" 
    }, 
    product2: { 
     id : 2, 
     name: "p2", 
     brand: "brand1" 
    }, 
    product3: { 
     id : 3, 
     name: "p3" 
     brand: "brand2" 
    } 
    }, 
    brands: { 
    brand1: { 
     id: 1, 
     name: "b1" 
    }, 
    brand2: { 
     id: 2, 
     name: "b2" 
    } 
    } 
} 

, когда я ударил ниже URL, https://awesome.firebaseio-demo.com/products.json, я получаю эти данные

products: { 
    product1: { 
    id : 1, 
    name: "p1", 
    brand: "brand1" 
    }, 
    product2: { 
    id : 2, 
    name: "p2", 
    brand: "brand1" 
    }, 
    product3: { 
    id : 3, 
    name: "p3" 
    brand: "brand2" 
    } 
} 

Но я хочу

products: { 
    product1: { 
    id : 1, 
    name: "p1", 
    bid: 1, 
    bname: "b1" 
    }, 
    product2: { 
    id : 2, 
    name: "p2", 
    bid: 1, 
    bname: "b1" 

    }, 
    product3: { 
    id : 3, 
    name: "p3" 
    bid: 2, 
    bname: "b2" 
    } 
} 

я могу хранить бренд информацию с самого продукта, но и в этом случае :

  1. , если мне нужно изменить b rand name b1 to b100, мне нужно внести изменения в несколько мест (в примере 2 места).
  2. Я не могу получить список брендов.

Каков наилучший способ использования огневой базы для достижения вышеуказанного результата для продуктов, обеспечивающих максимально возможное дублирование кода?

+0

Объединения данные были покрыты много раз. Что вы пробовали? Какую технологию вы используете? –

ответ

1

Если и хотят достичь отдельного списка брендов, а также сделать его эффективным, то и должно делать это, как и в первом примере, и получить информацию о brand т.е. brand1 вы можете вызвать Query метод Brands-node и запрос для этого требуется brand1 узел.

т.е.

Query query=mFirebaseRefBrands.orderByKey().equalTo("brand1").addSingleValueEventLIstener(new ValueEventListener) {...} 
Смежные вопросы