如何从firebase

时间:2016-08-06 04:39:34

标签: firebase firebase-realtime-database

这是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"
    }
  }
}

当我点击以下网址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. 如果我需要更改品牌名称b1到b100,我需要在多个地方进行更改(例如2个地方)。
  2. 我无法获得品牌列表。
  3. firebase实现上述结果的最佳方法是什么?保持代码重复尽可能少?

1 个答案:

答案 0 :(得分:1)

如果您想要获得单独的品牌列表并使其高效,那么您必须像第一个示例那样执行此操作并获取brand的信息,即brand1您可以调用Query 1}}方法到Brands-node并查询所需的brand1节点。

Query query=mFirebaseRefBrands.orderByKey().equalTo("brand1").addSingleValueEventLIstener(new ValueEventListener) {...}